[Laszlo-dev] For Review: Change 20090601-maxcarlson-6 Summary: Fix contextmenu inconsistencies in DHTML

Max Carlson max at openlaszlo.org
Mon Jun 1 18:05:35 PDT 2009


Change 20090601-maxcarlson-6 by maxcarlson at Bank on 2009-06-01 17:44:36  
PDT
     in /Users/maxcarlson/openlaszlo/trunk-clean
     for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: Fix contextmenu inconsistencies in DHTML

Bugs Fixed: LPP-8218 - DHTML: issues with contextmenu onmenuopen,  
dragging

Technical Reviewer: andre.bargull at udo.edu
QA Reviewer: hminsky

Details: This includes all changes from http://www.openlaszlo.org/pipermail/laszlo-dev/2009-May/021166.html 
  - Andre's changes to improve context menu support.  I had to hand- 
merge LzKeyboardKernel due to changes I'd made related to LPP-8210.

LzSprite -  [Andre: 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'!]

Moved detectstuckkeys from capabilities to quirks.  Added  
quirks.noglobaloncontextmenu  to deal with Firefox OS X context menu  
issue - https://bugzilla.mozilla.org/show_bug.cgi?id=443191.   
__clickDispatcher() looks for quirks.noglobaloncontextmenu to fix  
context menus in Firefox OS X.  Remove unused (e.button == 2 &&  
eventname != 'oncontextmenu') test from __mouseEvent().

LzKeyboardKernel - [Andre 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).]  Hand-merged tests for meta key/stuck  
keys checked into r14021.

LzMouseKernel - Andre's changes, plus I simplified the contextmenu  
test to if (eventname == 'oncontextmenu' && targ) - testing for  
(e.button == 2 && eventname == 'onmouseup') is now handled in  
LzSprite.__clickDispatcher().

Tests: lz.Keys.downKeysArray no longer has extra entries for meta  
keys, e.g. 'a' after pressing/releasing apple-a on OS X (LPP-8210).   
test/contextmenu/lpp-6980.lzx?lzr=dhtml shows custom context menus for  
red and blue boxes and default context menus for purple, yellow and  
the canvas across Firefox and Safari OS X and Firefox, IE and Safari  
on Windows.  test/lfc/legals/keyboardandmouse.lzx?lzr=dhtml runs as  
before in Firefox and
Safari OS X and Firefox, IE and Safari on Windows.

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/20090601-maxcarlson-6.tar


More information about the Laszlo-dev mailing list