Friday, July 30, 2010

Re: why doesn't this right-click capture work in IE?

Thanks, that did it!

On Jul 30, 3:00 pm, lineman78 <linema...@gmail.com> wrote:
> You are using the older method of event handling.  This method works
> fine for me:
>
>             addDomHandler(new ContextMenuHandler()
>             {
>                 @Override
>                 public void onContextMenu(ContextMenuEvent event)
>                 {
>                     showMenu();
>                     event.preventDefault();
>                 }
>             }, ContextMenuEvent.getType());
>
> On Jul 30, 11:16 am, BrianP <brifo...@gmail.com> wrote:
>
>
>
> > I'm trying to capture right-clicks on a widget, to popup my own
> > context menu instead of the browser's. I've researched it a bit and
> > pieced together bits and I've got it working in Chrome and FF but not
> > IE. In IE it doesn't display the default browser context menu, but it
> > doesn't display my popup menu either. I'm just getting into GWT so I'm
> > assuming I'm not doing something right with the right kinds of
> > handlers or events. I'm also using the gwt-graphics module, that's
> > where the Rectangle class that I'm extending comes from, in case
> > that's relevant.
>
> > Here's my code:
>
> > public class RectangleRightClickable extends Rectangle {
>
> > public RectangleRightClickable(int x, int y, int width, int height) {
> >     super(x, y, width, height);
> >     sinkEvents(Event.ONCONTEXTMENU);
>
> > }
>
> > public void onBrowserEvent(Event event) {
> >     GWT.log("onBrowserEvent");
> >     event.stopPropagation();
> >     event.preventDefault();
> >     GWT.log("event type : " + DOM.eventGetType(event));
> >     switch(DOM.eventGetType(event)) {
> >     case Event.ONCONTEXTMENU:
> >         if (DOM.eventGetButton(event) == Event.BUTTON_RIGHT) {
> >             GWT.log("Event.BUTTON_RIGHT", null);
> >             showMenu();
> >         }
> >         break;
> >     default:
> >         GWT.log(event.toString());
> >         break;
> >     }
>
> > }
>
> > protected void showMenu() {
> >     final RectangleRightClickable parent = this;
> >     final PopupMenu popMenu = new PopupMenu();
> >     popMenu.addMenuItem(new Label("Add thing"));
> >     popMenu.setPopupPositionAndShow(new PopupPanel.PositionCallback()
> > {
> >         public void setPosition(int offsetWidth, int offsetHeight) {
> >             int left = parent.getX() + parent.getWidth();
> >             int top = parent.getY() + parent.getWidth();
> >             popMenu.setPopupPosition(left, top);
> >         }
> >     });
>
> > }
> > }

--
You received this message because you are subscribed to the Google Groups "Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to google-web-toolkit+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.

No comments:

Post a Comment