[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