From: <bas...@ya...> - 2003-09-30 18:05:14
|
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); > > </script> > > </head> > > <body> > > <script> > > dynapi.document.insertAllChildren(); > > </script> > > </body> > > </html> > > > > Regards > > Brian Pedersen > > > > Yahoo! Mail (http://dk.mail.yahoo.com) - Gratis: 6 MB lagerplads, > spamfilter > > og virusscan > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > Dynapi-Help mailing list > > Dyn...@li... > > https://lists.sourceforge.net/lists/listinfo/dynapi-help > > > > > > > > > > ------------------------------------------------------- > > This sf.net email is sponsored by:ThinkGeek > > Welcome to geek heaven. > > http://thinkgeek.com/sf > > _______________________________________________ > > Dynapi-Help mailing list > > Dyn...@li... > > https://lists.sourceforge.net/lists/listinfo/dynapi-help > > > > > --- > Outgoing mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.522 / Virus Database: 320 - Release Date: 9/29/03 > > > > ------------------------------------------------------- > This sf.net email is sponsored by:ThinkGeek > Welcome to geek heaven. > http://thinkgeek.com/sf > _______________________________________________ > Dynapi-Help mailing list > Dyn...@li... > https://lists.sourceforge.net/lists/listinfo/dynapi-help Yahoo! Mail (http://dk.mail.yahoo.com) - Gratis: 6 MB lagerplads, spamfilter og virusscan |