From: Raymond I. <xw...@ya...> - 2003-09-30 21:00:41
|
What's the code to stop context menu, but still allow capturing of right click? -- Raymond Irving --- Doug Melvin <do...@cr...> wrote: > Okay.. I should check all message before ranting.. > :-) > See this: > http://www.faqts.com/knowledge_base/view.phtml/aid/5693/fid/126 > > **Note to developers** > in Dynapi 2.x we had built in function to stop > context menu, but still allow > capturing of right click.. > Can we add that back in for 3.x? > > > ----- Original Message ----- > From: "Brian Pedersen" <bas...@ya...> > To: <dyn...@li...> > Sent: Tuesday, September 30, 2003 2:04 PM > Subject: Re: [Dynapi-Help] Rightclick events: bug > noted > > > > Hi Doug > > > > Thanks anyhow, you got me on the right track. > > Implementing your listener with a different > condition works perfect, at > least in > > MSIE 5.5: > > > > ondragstart:function(e){ > > if(event.button==2||event.button==3){ > > e.cancelDrag(); > > } > > } > > > > As my fix probably aint browsersafe, Im still > looking forward to the > bugfix > > though. > > > > For now I just need to figure out how to avoid the > default browser > contextmenu. > > > > Regards > > Brian Pedersen > > > > --- Doug Melvin <do...@cr...> > skrev: > the following > _should_ > > work but does not under IE 6. > > > > > > lyr.addEventListener({ > > > ondragstart:function(e){ > > > status=e.getButton(); > > > if(e.getButton() == "right"){ > > > e.cancelDrag(); > > > } > > > } > > > }); > > > > > > when in the ondragstart event, in the > mouse_ie.js:MouseEvent.getButton() > > > returns left always. > > > Through debugging I noteied the the error > condition on line: 26 "if > > > (!this._mouseEvent) return "ouch";" (I added the > "ouch") > > > always returns "ouch" > > > > > > Works normally inside of a onclick event. > (returns left, middle or > right) > > > > > > Same deal in NS 4x, works correctly in onclick > event, but executes error > > > code in ondragstart event at: > > > line 26 in mouse_ns4.js:getButton() "if > (!this._browserEvent) return > > > "ouch";" (i added the ouch) > > > > > > Mozilla 1.x: Same deal again.. > > > > > > It seems obvious to me that this is a bug in the > common base of the > > > dragevents scheme.. > > > > > > I am at work right now, and have no intoernet at > home. > > > Someone else will have to fix this if we want it > fixed in the near > future. > > > ----- Original Message ----- > > > From: "Brian Hayes" <bg...@ke...> > > > To: <dyn...@li...> > > > Sent: Tuesday, September 30, 2003 5:49 AM > > > Subject: RE: [Dynapi-Help] Rightclick events > > > > > > > > > > Here is what I did, but there may be a better > way.. > > > > > > > > onclick : function(e) { > > > > if(e.getButton() == 'left'){ //Netscape fix, > > > > onclick to make sure only the left button > > > > //Do Something.. > > > > } > > > > }, > > > > > > > > Brian Hayes > > > > > > > > Hi > > > > > > > > First let me say that I am crazy about the > eventmodel in the dynapi, > > > > attaching > > > > eventlisteners to a DynLayer instead of making > global eventlistener > makes > > > > everything so much easyer. > > > > > > > > I do have one problem, though: > > > > I have a DHTML applikation resempling a > windows desktop with movable > > > icons. > > > > Rigthclicking these icons should bring up a > contextmenu. > > > > > > > > My problem is that rightclicking the icon > makes it dragable, which is > not > > > my > > > > intention, only when leftclicking should it > become dragable. > > > > > > > > I would also like to ensure that the default > browser contextmenu never > > > > appears, > > > > this is usually done in a traditional > eventlistener by returning > false: > > > > > > > > document.onmousedown=function(){ > eventListener(event);return false; } > > > > function eventListener(e){ > > > > if(event.button==2||event.button==3) { > > > > alert('Contextmenu activated'); > > > > } > > > > return false; > > > > } > > > > > > > > How can I ensure that the layer only becomes > dragable when > leftclicking > > > and > > > > how > > > > can I disable the default browser contextmenu > ? > > > > > > > > This is my code: > > > > <html> > > > > <head> > > > > <title>Simple test</title> > > > > <script language="JavaScript" > src="js/dynapi/dynapi.js"></script> > > > > <script language="Javascript"> > > > > dynapi.library.setPath('js/dynapi/'); > > > > dynapi.library.include('dynapi.api'); > > > > > dynapi.library.include('dynapi.api.ext.DragEvent'); > > > > dynapi.library.include('dynapi.fx.MotionX'); > > > > dynapi.library.include('FocusManager'); > > > > dynapi.library.include('BorderManager'); > > > > </script> > > > > <script language="Javascript"> > > > > > > > > var icon1=new > DynLayer(null,25,25,32,32,null,'images/icon1.gif'); > > > > > > > > icon1.setID("icon1"); > > > > icon1.makeSolid(); > > > > icon1.setFocus('auto',true,'hover'); > > > > DragEvent.enableDragEvents(icon1); > > > > > > > > icon1.addEventListener({ > > > > onmousedown:function(e){ > > > > var o=e.getSource(); > > > > if(event.button==2||event.button==3){ > > > > alert('Contextmenu activated'); > > > > } > > > > }, > > > > onmouseover:function(e){ > > > > var o=e.getSource(); > > > > o.setInnerBorder(1); > > > > }, > > > > onmouseout:function(e){ > > > > var o=e.getSource(); > > > > o.setInnerBorder(0); > > > > } > > > > }); > > > > > > > > dynapi.document.addChild(icon1); > === message truncated === __________________________________ Do you Yahoo!? The New Yahoo! Shopping - with improved product search http://shopping.yahoo.com |