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 <[EMAIL PROTECTED]> 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" <[EMAIL PROTECTED]>
> To: <[EMAIL PROTECTED]>
> 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
> > [EMAIL PROTECTED]
> > 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
> > [EMAIL PROTECTED]
> > 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
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/dynapi-help
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
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/dynapi-help