There's a little bit of code in the DHTML kernel which suppresses the
display if it thinks
the 'builtin items' are visible. However, the whole concept of builtin items
is really
Flash-specific, given that we are not using the built-in browser menu at all
in DHTML.

So I propose making this change to LzContextMenuKernel

Index: LzContextMenuKernel.lzs
===================================================================
--- LzContextMenuKernel.lzs    (revision 14636)
+++ LzContextMenuKernel.lzs    (working copy)
@@ -143,8 +143,8 @@
     s.style.left = LzMouseKernel.__x + 'px';
     s.style.top = LzMouseKernel.__y + 'px';

-    // Only show menu if there are any visible items and builtin items are
hidden
-    if (shownItems && ! this.showbuiltins) {
+    // Only show menu if there are any visible items
+    if (shownItems) {
         s.style.display = 'block';
     }
 }


On Mon, Aug 31, 2009 at 6:10 PM, André Bargull <[email protected]>wrote:

> Ah, I see. That's the same issue we've talked about earlier and I just
> forgot that I left that code in my LPP-8218 testfile.
>
>
> On 8/28/2009 6:00 PM, Henry Minsky wrote:
> >
> >     It's apparently no longer possible to show the built-in native
> >     context-menu if requested by a call to
> >     "lz.contextmenu#showBuiltInItems()".
> >
> >
> >
> > Oh I wasn't aware that was supposed to work that way. I thought it was
> > only if you set the
> > context menu to 'null' that the native menu would show.
> >
> > It's a little different in DHTML than
> > SWF, because in SWF we always use the native menu, but just control what
> > items are shown,
> > whereas in DHTML we completely suppress the native menu if we're showing
> any
> > custom items.  So I'm not sure what showBuiltinItems ought to do in
> > DHTML...
>
>
>
> On 9/1/2009 12:02 AM, Henry Minsky wrote:
>
>> It's the call to oninit="this.showBuiltInItems()"  that seems to be nuking
>> it.
>>
>> I'll take a look at why this is happening.
>>
>> On Mon, Aug 31, 2009 at 6:00 PM, André Bargull <[email protected]<mailto:
>> [email protected]>> wrote:
>>
>>    Your test case works for me, too. But this one doesn't work:
>>    ---
>>    <canvas debug="true">
>>
>>     <view width="200" height="200" bgcolor="0xff0000">
>>       <contextmenu name="cm" oninit="this.showBuiltInItems()"
>>    onmenuopen="Debug.write('opened menu')" >
>>         <contextmenuitem onselect="Debug.write('selected menuitem')"
>>    caption="hello world"/>
>>       </contextmenu>
>>       <handler name="onmousedown">
>>         Debug.debug("view onmousedown");
>>       </handler>
>>       <handler name="onmouseup">
>>         Debug.debug("view onmouseup");
>>       </handler>
>>       <handler name="onclick">
>>         Debug.debug("view onclick");
>>       </handler>
>>     </view>
>>     <handler name="onmousedown" reference="lz.GlobalMouse">
>>       Debug.debug("global onmousedown");
>>     </handler>
>>     <handler name="onmouseup" reference="lz.GlobalMouse">
>>       Debug.debug("global onmouseup");
>>     </handler>
>>    </canvas>
>>    ---
>>
>>
>>
>>    On 8/31/2009 11:42 PM, Henry Minsky wrote:
>>
>>        Hmm. Firefox 3.5.2 (Win) works for me.
>>
>>        With test case of
>>
>>        <canvas debug="true" height="100%">
>>         <handler name="oninit">
>>
>>           canvas.setDefaultContextMenu(null);
>>         </handler>
>>
>>         <view width="200" height="200" bgcolor="0xff0000">
>>           <contextmenu name="cm" onmenuopen="Debug.write('opened menu')" >
>>             <contextmenuitem caption="hello world"/>
>>           </contextmenu>
>>         </view>
>>        </canvas>
>>
>>        I'm at r14631 in trunk. Maybe try a clean build?
>>
>>
>>
>>        I see the "hello world" menu when I mouse right over the red view.
>>
>>        Mousing right on the Canvas shows the default browser menu.
>>
>>
>>
>>        On Mon, Aug 31, 2009 at 5:32 PM, André Bargull
>>        <[email protected] <mailto:[email protected]>
>>        <mailto:[email protected] <mailto:[email protected]>>>
>>
>>        wrote:
>>
>>           I would like to test that changeset, but context-menus don't
>>        show up
>>           at all* under Firefox3.5 (Win) with tr...@14635, with and
>> without
>>           your change. So I'm a bit lost here... :-)
>>
>>
>>           * The global context-menu works, it also works if I open the
>>        global
>>           context-menu and then right-click on the red view while the
>>        global
>>           context-menu is still open. But only right clicking on the
>>        red view
>>           doesn't bring up the context-menu.
>>
>>
>>           On 8/31/2009 7:09 PM, Henry Minsky wrote:
>>
>>               Change 20090831-hqm-N by [email protected] on 2009-08-31
>>               13:01:15 EDT
>>                  in /Users/hqm/openlaszlo/trunk-clean
>>                  for http://svn.openlaszlo.org/openlaszlo/trunk
>>
>>               Summary: (DHTML) ignore spurious mouse events when user
>>               dismisses contextmenu
>>
>>               New Features:
>>
>>               Bugs Fixed: LPP-8218, LPP-8189
>>
>>               Technical Reviewer: max
>>               QA Reviewer: andre
>>               Doc Reviewer: (pending)
>>
>>               Documentation:
>>
>>               Release Notes:
>>
>>               Details:
>>
>>               Change to make behavior when menu is dismissed match SWF
>> more
>>               closely.
>>
>>               + When the user wants to dismiss a context menu without
>>               selecting any
>>               items, they move the mouse outside of the menu and either
>>               release the
>>               button or click the button.  In either case, we do not
>>        want these
>>               mousedown,mouseup, and click events to be sent to
>>        whatever view they
>>               happen to be over.
>>
>>               This change modifies LzMouseKernel#__sendEvent to check
>>        if the
>>               context
>>               menu is being hidden due to a mousedown, and if so, sets
>>        flags to
>>               ignore the next mouseup and onclick events.
>>
>>
>>               Tests:
>>
>>               [test case from LPP-8189]
>>               <canvas>
>>               <view width="200" height="200" bgcolor="0xff0000">
>>                  <handler name="onmousedown">
>>                      // Expected: Fires in swf8 and dhtml for left
>>        mouse click
>>                      // Unexpected: Fires in dhtml for right mouse click
>>                      Debug.write("onmousedown");
>>                  </handler>
>>                  <handler name="onmouseup">
>>                      // Expected: Fires in swf8 and dhtml for left
>>        mouse click
>>                      // Unexpected: Fires in dhtml for right mouse click
>>                      Debug.write("onmouseup");
>>                  </handler>
>>                  <handler name="onclick">
>>                      // Expected: Fires in swf8 and dhtml for left
>>        mouse click
>>                      Debug.write("onclick");
>>                  </handler>
>>               </view>
>>               </canvas>
>>
>>
>>               In DHTML, these two cases should print no mouse events to
>> the
>>               debugger
>>
>>               [1] Move mouse over red view, click right to display
>>        context menu.
>>               Press left button over an item, and while holding, drag
>>        mouse out of
>>               context menu, but still over the red view, and then release
>>               button to
>>               dismiss menu.
>>               No events should print to the debugger.
>>
>>               [1] Move mouse over red view, click right to display
>>        context menu.
>>               Move mouse out of context menu, but still over red view,
>>        and click
>>               left to dismiss menu.
>>               No events should print to the debugger.
>>
>>               Files:
>>               M      WEB-INF/lps/lfc/kernel/dhtml/LzMouseKernel.js
>>
>>               Changeset:
>>
>> http://svn.openlaszlo.org/openlaszlo/patches/20090831-hqm-N.tar
>>
>>
>>
>>
>>        --        Henry Minsky
>>        Software Architect
>>        [email protected] <mailto:[email protected]>
>>        <mailto:[email protected]
>>        <mailto:[email protected]>>
>>
>>
>>
>>
>>
>> --
>> Henry Minsky
>> Software Architect
>> [email protected] <mailto:[email protected]>
>>
>>
>>


-- 
Henry Minsky
Software Architect
[email protected]
_______________________________________________
Laszlo-reviews mailing list
[email protected]
http://www.openlaszlo.org/mailman/listinfo/laszlo-reviews

Reply via email to