@Override public void onBrowserEvent(Event event) { GWT.log("slider mouse event: " + DOM.eventGetTypeString(event)); if (DOM.eventGetType(event) == Event.ONCONTEXTMENU) { event.stopPropagation(); event.preventDefault(); int x = event.getClientX(); int y = event.getClientY(); NodeList<Node> children = getChildren().get(0).getElement().getChildNodes(); for (int i = 0; i < children.getLength(); i++) { Node child = children.getItem(i); Element widget = (Element) child; String id = widget.getId(); GWT.log("checking " + id + " to see if its the rightclicked element"); int left = widget.getAbsoluteLeft(); int width = widget.getOffsetWidth(); int top = widget.getAbsoluteTop(); int height = widget.getOffsetHeight(); if (left < x && left + width > x && top < y && top + height > y) { this.clickedElement = DOM.getElementById(id); GWT.log(editor.getElement().getId() + " context menu for " + id); GWT.log("positioning context menu at " + event.getClientX() + "x" + event.getClientY()); contextMenu.show(event.getClientX(), event.getClientY(), menu); break; } } } else if (DOM.eventGetType(event) == Event.ONCLICK) { ContextMenu.hide(); } super.onBrowserEvent(event); }