[Laszlo-dev] For Review: Change 20090519-bargull-2Mz Summary: DHTML: contextmenu part two

André Bargull andre.bargull at udo.edu
Wed May 20 08:32:46 PDT 2009


Ok, let's see what we've got:

(1) You've added this line to "__mouseEvent()":
 > > if (e.button == 2 && eventname != 'oncontextmenu') return;
So the event processing is stopped for any event with "button==2" 
(unless the eventname is "oncontextmenu" -> btw, when does this happen? 
There is no listener attached to the click divs for "oncontextmenu"..).

(2) And earlier, the bubbling is already stopped when calling 
"__keybardEvent()", because "event.keyCode" is >=0 (at least for Safari,
Opera, IE).

(3) And just for "onmouseup" the event bubbling is reenabled.


My questions:
I suppose you're testing with Safari, right? May you test if "keyCode" 
is >=0 for every mouse-event? Because in that case the event bubbling is 
stopped by (2). And "onmouseup" events with right button won't be 
reenabled (3) because of (1).





On 5/20/2009 12:33 AM, Max Carlson wrote:
> Nope, that doesn't do it.  I think it has to do with the fact that 
> onmouseup events no longer bubble...
> 
> André Bargull wrote:
>> Hm, it works for me perfectly on Windows (IE, Firefox, Safari).
>> Do you get different results if you replace in "__clickDispatcher()":
>>> e.preventDefault();
>>> e.stopPropagation();
>>
>> with:
>>> e.returnValue = false;
>>> e.cancelBubble = true;
>> ?
>>
>>
>>
>>
>> On 5/19/2009 11:26 PM, Max Carlson wrote:
>>> Not approved.  In OS X, test/contextmenu/lpp-6980.lzx no longer shows 
>>> context menus for the red or blue boxes.  If I change 
>>> LzMouseKernel.js as follows, everything works again:
>>>
>>> 46c46
>>> <         } else if (eventname == 'oncontextmenu' || (e.button == 2 
>>> && eventname == 'onmouseup') ) {
>>> ---
>>>  >         } else if (eventname == 'oncontextmenu' || (e.button == 2 
>>> && eventname == 'onclick') ) {
>>>
>>> André Bargull wrote:
>>>> Change 20090519-bargull-2Mz by bargull at dell--p4--2-53 on 2009-05-19 
>>>> 19:41:02
>>>> in /home/Admin/src/svn/openlaszlo/trunk
>>>> for http://svn.openlaszlo.org/openlaszlo/trunk
>>>>
>>>> Summary: DHTML: contextmenu part two
>>>>
>>>> New Features:
>>>>
>>>> Bugs Fixed: LPP-8189 (Right click fires an erroneous mousedown and 
>>>> mouseup in DHTML) (partial)
>>>>
>>>> Technical Reviewer: max
>>>> QA Reviewer: (pending)
>>>> Doc Reviewer: (pending)
>>>>
>>>> Documentation:
>>>>
>>>> Release Notes:
>>>>
>>>> Details:
>>>> LzSprite:
>>>> - canceling event-bubbling for all mouse-events => this was already 
>>>> done for all browsers (except Firefox) and all events (except 
>>>> onmouseup). Why wasn't Firefox affected? => All other browsers set 
>>>> "event.keyCode" to '0' for mouse-events, only Firefox sets "keyCode" 
>>>> to 'undefined'. Now take a look at 
>>>> "LzKeyboardKernel.__keyboardEvent()", every event was canceled in 
>>>> that function if "keyCode" was '>= 0'!
>>>>
>>>> LzKeyboardKernel:
>>>> - move handling for control keys (ctrl, shift, alt) into separate 
>>>> function. It should be obvious why having a single function for 
>>>> both, mouse-events and keyboard-events, is a bad idea (see keyCode 
>>>> issue from above).
>>>>
>>>>
>>>> Tests:
>>>>
>>>> Files:
>>>> M WEB-INF/lps/lfc/kernel/dhtml/LzKeyboardKernel.js
>>>> M WEB-INF/lps/lfc/kernel/dhtml/LzSprite.js
>>>> M WEB-INF/lps/lfc/kernel/dhtml/LzMouseKernel.js
>>>>
>>>> Changeset: 
>>>> http://svn.openlaszlo.org/openlaszlo/patches/20090519-bargull-2Mz.tar
>>>>
>>>
> 


More information about the Laszlo-dev mailing list