Download
Getting Started
Members
Projects
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
More
Community
Marketplace
Events
Planet Eclipse
Newsletter
Videos
Participate
Report a Bug
Forums
Mailing Lists
Wiki
IRC
How to Contribute
Working Groups
Automotive
Internet of Things
LocationTech
Long-Term Support
PolarSys
Science
OpenMDM
Toggle navigation
Bugzilla – Attachment 147939 Details for
Bug 290303
SWT.MenuDetect event is missing
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read
this important communication.
[patch]
menudetect-impl.diff
menudetect-impl.diff (text/plain), 48.86 KB, created by
Benjamin Muskalla
on 2009-09-23 18:07:25 EDT
(
hide
)
Description:
menudetect-impl.diff
Filename:
MIME Type:
Creator:
Benjamin Muskalla
Created:
2009-09-23 18:07:25 EDT
Size:
48.86 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.rap.rwt.test >Index: src/org/eclipse/swt/widgets/Control_Test.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt.test/org.eclipse.rap.rwt.test/src/org/eclipse/swt/widgets/Control_Test.java,v >retrieving revision 1.21 >diff -u -r1.21 Control_Test.java >--- src/org/eclipse/swt/widgets/Control_Test.java 20 Aug 2009 10:05:23 -0000 1.21 >+++ src/org/eclipse/swt/widgets/Control_Test.java 23 Sep 2009 22:07:52 -0000 >@@ -786,4 +786,5 @@ > assertNotNull( monitor ); > assertEquals( display.getPrimaryMonitor(), monitor ); > } >+ > } >Index: src/org/eclipse/swt/internal/widgets/UntypedEventAdapter_Test.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt.test/org.eclipse.rap.rwt.test/src/org/eclipse/swt/internal/widgets/UntypedEventAdapter_Test.java,v >retrieving revision 1.12 >diff -u -r1.12 UntypedEventAdapter_Test.java >--- src/org/eclipse/swt/internal/widgets/UntypedEventAdapter_Test.java 1 Jul 2009 14:18:23 -0000 1.12 >+++ src/org/eclipse/swt/internal/widgets/UntypedEventAdapter_Test.java 23 Sep 2009 22:07:52 -0000 >@@ -110,6 +110,9 @@ > adapter.addListener( SWT.Help, listener ); > adapter.helpRequested( new HelpEvent( widget ) ); > assertEquals( SWT.Help, eventType ); >+ adapter.addListener( SWT.MenuDetect, listener ); >+ adapter.menuDetected( new MenuDetectEvent( widget ) ); >+ assertEquals( SWT.MenuDetect, eventType ); > } > > public void testAdditionAndRemovalOfListener() throws Exception { >#P org.eclipse.rap.rwt >Index: src/org/eclipse/swt/internal/widgets/UntypedEventAdapter.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt/src/org/eclipse/swt/internal/widgets/UntypedEventAdapter.java,v >retrieving revision 1.26 >diff -u -r1.26 UntypedEventAdapter.java >--- src/org/eclipse/swt/internal/widgets/UntypedEventAdapter.java 10 Aug 2009 10:29:56 -0000 1.26 >+++ src/org/eclipse/swt/internal/widgets/UntypedEventAdapter.java 23 Sep 2009 22:07:55 -0000 >@@ -35,7 +35,8 @@ > TraverseListener, > ShowListener, > ActivateListener, >- HelpListener >+ HelpListener, >+ MenuDetectListener > { > > private class Entry { >@@ -225,6 +226,12 @@ > dispatchEvent( event ); > } > >+ public void menuDetected( final MenuDetectEvent typedEvent ) { >+ Event event = createEvent( SWT.MenuDetect, typedEvent.getSource() ); >+ copyFields( typedEvent, event ); >+ dispatchEvent( event ); >+ } >+ > ////////////////////// > // Listener management > >@@ -278,6 +285,9 @@ > MenuEvent.addListener( widget, this ); > } > break; >+ case SWT.MenuDetect: >+ MenuDetectEvent.addListener( widget, this ); >+ break; > case SWT.Modify: > ModifyEvent.addListener( widget, this ); > break; >@@ -361,6 +371,9 @@ > MenuEvent.removeListener( widget, this ); > } > break; >+ case SWT.MenuDetect: >+ MenuDetectEvent.removeListener( widget, this ); >+ break; > case SWT.Modify: > ModifyEvent.removeListener( widget, this ); > break; >@@ -455,6 +468,9 @@ > typedEvent = new MenuEvent( event ); > } > break; >+ case SWT.MenuDetect: >+ typedEvent = new MenuDetectEvent( event ); >+ break; > case SWT.Modify: > typedEvent = new ModifyEvent( event ); > break; >@@ -588,4 +604,11 @@ > to.detail = from.detail; > to.doit = from.doit; > } >+ >+ private static void copyFields( final MenuDetectEvent from, final Event to ) { >+ copyFields( ( TypedEvent )from, to ); >+ to.x = from.x; >+ to.y = from.y; >+ to.doit = from.doit; >+ } > } >Index: src/org/eclipse/swt/widgets/Control.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt/src/org/eclipse/swt/widgets/Control.java,v >retrieving revision 1.59 >diff -u -r1.59 Control.java >--- src/org/eclipse/swt/widgets/Control.java 21 Sep 2009 14:50:50 -0000 1.59 >+++ src/org/eclipse/swt/widgets/Control.java 23 Sep 2009 22:07:55 -0000 >@@ -1719,6 +1719,58 @@ > HelpEvent.removeListener( this, listener ); > } > >+ /** >+ * Adds the listener to the collection of listeners who will >+ * be notified when the platform-specific context menu trigger >+ * has occurred, by sending it one of the messages defined in >+ * the <code>MenuDetectListener</code> interface. >+ * >+ * @param listener the listener which should be notified >+ * >+ * @exception IllegalArgumentException <ul> >+ * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> >+ * </ul> >+ * @exception SWTException <ul> >+ * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> >+ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that >+ * created the receiver</li> >+ * </ul> >+ * >+ * @see MenuDetectListener >+ * @see #removeMenuDetectListener >+ * >+ * @since 1.3 >+ */ >+ public void addMenuDetectListener( final MenuDetectListener listener ) { >+ checkWidget (); >+ MenuDetectEvent.addListener( this, listener ); >+ } >+ >+ /** >+ * Removes the listener from the collection of listeners who will >+ * be notified when the platform-specific context menu trigger has >+ * occurred. >+ * >+ * @param listener the listener which should no longer be notified >+ * >+ * @exception IllegalArgumentException <ul> >+ * <li>ERROR_NULL_ARGUMENT - if the listener is null</li> >+ * </ul> >+ * @exception SWTException <ul> >+ * <li>ERROR_WIDGET_DISPOSED - if the receiver has been disposed</li> >+ * <li>ERROR_THREAD_INVALID_ACCESS - if not called from the thread that created the receiver</li> >+ * </ul> >+ * >+ * @see MenuDetectListener >+ * @see #addMenuDetectListener >+ * >+ * @since 1.3 >+ */ >+ public void removeMenuDetectListener( final MenuDetectListener listener ) { >+ checkWidget (); >+ MenuDetectEvent.removeListener( this, listener ); >+ } >+ > //////////////// > // drawing (Note that we can't really force a redraw. This is just a > // fake to for event notifications that come on OS systems >Index: src/org/eclipse/swt/events/TypedEvent.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt/src/org/eclipse/swt/events/TypedEvent.java,v >retrieving revision 1.27 >diff -u -r1.27 TypedEvent.java >--- src/org/eclipse/swt/events/TypedEvent.java 1 Jul 2009 14:18:25 -0000 1.27 >+++ src/org/eclipse/swt/events/TypedEvent.java 23 Sep 2009 22:07:54 -0000 >@@ -52,6 +52,7 @@ > DisposeEvent.class, > SetDataEvent.class, > FocusEvent.class, >+ MenuDetectEvent.class, > MouseEvent.class, > VerifyEvent.class, > ModifyEvent.class, >Index: src/org/eclipse/swt/SWT.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt/src/org/eclipse/swt/SWT.java,v >retrieving revision 1.43 >diff -u -r1.43 SWT.java >--- src/org/eclipse/swt/SWT.java 16 Sep 2009 09:28:46 -0000 1.43 >+++ src/org/eclipse/swt/SWT.java 23 Sep 2009 22:07:54 -0000 >@@ -365,6 +365,17 @@ > public static final int Traverse = 31; > > /** >+ * The menu detect event type (value is 35). >+ * >+ * @see org.eclipse.swt.widgets.Widget#addListener >+ * @see org.eclipse.swt.widgets.Display#addFilter >+ * @see org.eclipse.swt.widgets.Event >+ * >+ * @since 1.3 >+ */ >+ public static final int MenuDetect = 35; >+ >+ /** > * The set data event type (value is 36). > * > * @see org.eclipse.swt.widgets.Widget#addListener >Index: src/org/eclipse/swt/events/MenuDetectListener.java >=================================================================== >RCS file: src/org/eclipse/swt/events/MenuDetectListener.java >diff -N src/org/eclipse/swt/events/MenuDetectListener.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/swt/events/MenuDetectListener.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,31 @@ >+package org.eclipse.swt.events; >+ >+import org.eclipse.swt.internal.SWTEventListener; >+ >+/** >+ * Classes which implement this interface provide methods >+ * that deal with the events that are generated when the >+ * platform-specific trigger for showing a context menu is >+ * detected. >+ * <p> >+ * After creating an instance of a class that implements >+ * this interface it can be added to a control <!-- or TrayItem --> >+ * using the <code>addMenuDetectListener</code> method and >+ * removed using the <code>removeMenuDetectListener</code> method. >+ * When the context menu trigger occurs, the >+ * <code>menuDetected</code> method will be invoked. >+ * </p> >+ * >+ * @see MenuDetectEvent >+ * >+ * @since 1.3 >+ */ >+public interface MenuDetectListener extends SWTEventListener { >+ >+/** >+ * Sent when the platform-dependent trigger for showing a menu item is detected. >+ * >+ * @param e an event containing information about the menu detect >+ */ >+public void menuDetected(MenuDetectEvent e); >+} >\ No newline at end of file >Index: src/org/eclipse/swt/events/MenuDetectEvent.java >=================================================================== >RCS file: src/org/eclipse/swt/events/MenuDetectEvent.java >diff -N src/org/eclipse/swt/events/MenuDetectEvent.java >--- /dev/null 1 Jan 1970 00:00:00 -0000 >+++ src/org/eclipse/swt/events/MenuDetectEvent.java 1 Jan 1970 00:00:00 -0000 >@@ -0,0 +1,133 @@ >+/******************************************************************************* >+ * Copyright (c) 2000, 2008 IBM Corporation and others. >+ * All rights reserved. This program and the accompanying materials >+ * are made available under the terms of the Eclipse Public License v1.0 >+ * which accompanies this distribution, and is available at >+ * http://www.eclipse.org/legal/epl-v10.html >+ * >+ * Contributors: >+ * IBM Corporation - initial API and implementation >+ *******************************************************************************/ >+package org.eclipse.swt.events; >+ >+ >+import org.eclipse.rwt.Adaptable; >+import org.eclipse.swt.SWT; >+import org.eclipse.swt.internal.widgets.EventUtil; >+import org.eclipse.swt.widgets.Event; >+import org.eclipse.swt.widgets.Widget; >+ >+/** >+ * Instances of this class are sent whenever the platform- >+ * specific trigger for showing a context menu is detected. >+ * >+ * @see MenuDetectListener >+ * @see <a href="http://www.eclipse.org/swt/">Sample code and further information</a> >+ * >+ * @since 1.3 >+ */ >+ >+public final class MenuDetectEvent extends TypedEvent { >+ >+ /** >+ * the display-relative x coordinate of the pointer >+ * at the time the context menu trigger occurred >+ */ >+ public int x; >+ >+ /** >+ * the display-relative y coordinate of the pointer >+ * at the time the context menu trigger occurred >+ */ >+ public int y; >+ >+ /** >+ * A flag indicating whether the operation should be allowed. >+ * Setting this field to <code>false</code> will cancel the operation. >+ */ >+ public boolean doit; >+ >+ private static final long serialVersionUID = -3061660596590828941L; >+ >+ private static final int MENU_DETECT = SWT.MenuDetect; >+ >+ private static final Class LISTENER = MenuDetectListener.class; >+ >+/** >+ * Constructs a new instance of this class based on the >+ * information in the given untyped event. >+ * >+ * @param e the untyped event containing the information >+ */ >+ public MenuDetectEvent( final Event event ) { >+ super( event.widget, event.type ); >+ this.x = event.x; >+ this.y = event.y; >+ this.doit = event.doit; >+ } >+ >+/** >+ * Returns a string containing a concise, human-readable >+ * description of the receiver. >+ * >+ * @return a string representation of the event >+ */ >+public String toString() { >+ String string = super.toString (); >+ return string.substring (0, string.length() - 1) // remove trailing '}' >+ + " x=" + x >+ + " y=" + y >+ + " doit=" + doit >+ + "}"; >+} >+ >+/** >+ * Constructs a new instance of this class. >+ * <p><strong>IMPORTANT:</strong> This method is <em>not</em> part of the RWT >+ * public API. It is marked public only so that it can be shared >+ * within the packages provided by RWT. It should never be accessed >+ * from application code. >+ * </p> >+ */ >+ public MenuDetectEvent( final Widget source ) { >+ super( source, MENU_DETECT ); >+ } >+ >+ protected void dispatchToObserver( final Object listener ) { >+ switch( getID() ) { >+ case MENU_DETECT: >+ ( ( MenuDetectListener )listener ).menuDetected( this ); >+ break; >+ default: >+ throw new IllegalStateException( "Invalid event handler type." ); >+ } >+ } >+ >+ protected Class getListenerType() { >+ return LISTENER; >+ } >+ >+ protected boolean allowProcessing() { >+ return EventUtil.isAccessible( widget ); >+ } >+ >+ public static void addListener( final Adaptable adaptable, >+ final MenuDetectListener listener ) >+ { >+ addListener( adaptable, LISTENER, listener ); >+ } >+ >+ public static void removeListener( final Adaptable adaptable, >+ final MenuDetectListener listener ) >+ { >+ removeListener( adaptable, LISTENER, listener ); >+ } >+ >+ public static boolean hasListener( final Adaptable adaptable ) { >+ return hasListener( adaptable, LISTENER ); >+ } >+ >+ public static Object[] getListeners( final Adaptable adaptable ) { >+ return getListener( adaptable, LISTENER ); >+ } >+} >#P org.eclipse.rap.rwt.q07.test >Index: src/org/eclipse/swt/internal/widgets/controlkit/ControlLCA_Test.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt.test/org.eclipse.rap.rwt.q07.test/src/org/eclipse/swt/internal/widgets/controlkit/ControlLCA_Test.java,v >retrieving revision 1.4 >diff -u -r1.4 ControlLCA_Test.java >--- src/org/eclipse/swt/internal/widgets/controlkit/ControlLCA_Test.java 10 Oct 2008 15:09:17 -0000 1.4 >+++ src/org/eclipse/swt/internal/widgets/controlkit/ControlLCA_Test.java 23 Sep 2009 22:07:56 -0000 >@@ -18,13 +18,13 @@ > import org.eclipse.rwt.graphics.Graphics; > import org.eclipse.rwt.internal.browser.Mozilla1_7up; > import org.eclipse.rwt.internal.lifecycle.DisplayUtil; >+import org.eclipse.rwt.internal.lifecycle.JSConst; > import org.eclipse.rwt.internal.service.RequestParams; > import org.eclipse.rwt.internal.theme.ThemeManager; > import org.eclipse.rwt.lifecycle.*; > import org.eclipse.swt.RWTFixture; > import org.eclipse.swt.SWT; >-import org.eclipse.swt.events.ControlAdapter; >-import org.eclipse.swt.events.FocusAdapter; >+import org.eclipse.swt.events.*; > import org.eclipse.swt.graphics.*; > import org.eclipse.swt.internal.events.ActivateAdapter; > import org.eclipse.swt.internal.events.ActivateEvent; >@@ -227,6 +227,30 @@ > assertEquals( -1, markup.indexOf( focusLost ) ); > } > >+ public void testMenuDetectListener() { >+ RWTFixture.fakePhase( PhaseId.PROCESS_ACTION ); >+ Display display = new Display(); >+ Shell shell = new Shell( display ); >+ Label label = new Label( shell, SWT.NONE ); >+ final StringBuffer log = new StringBuffer(); >+ label.addMenuDetectListener( new MenuDetectListener() { >+ public void menuDetected( MenuDetectEvent e ) { >+ log.append( e.x ); >+ log.append( "|" ); >+ log.append( e.y ); >+ } >+ }); >+ String displayId = DisplayUtil.getId( display ); >+ String labelId = WidgetUtil.getId( label ); >+ Fixture.fakeResponseWriter(); >+ Fixture.fakeRequestParam( RequestParams.UIROOT, displayId ); >+ Fixture.fakeRequestParam( JSConst.EVENT_MENU_DETECT, labelId ); >+ Fixture.fakeRequestParam( JSConst.EVENT_MENU_DETECT_X, "10" ); >+ Fixture.fakeRequestParam( JSConst.EVENT_MENU_DETECT_Y, "30" ); >+ RWTFixture.executeLifeCycleFromServerThread(); >+ assertEquals( "10|30", log.toString() ); >+ } >+ > public void testRedrawAndDispose() { > final StringBuffer log = new StringBuffer(); > // Set up test scenario >#P org.eclipse.rap.rwt.q07 >Index: src/org/eclipse/swt/internal/custom/clabelkit/CLabelLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/custom/clabelkit/CLabelLCA.java,v >retrieving revision 1.9 >diff -u -r1.9 CLabelLCA.java >--- src/org/eclipse/swt/internal/custom/clabelkit/CLabelLCA.java 10 Aug 2009 17:45:54 -0000 1.9 >+++ src/org/eclipse/swt/internal/custom/clabelkit/CLabelLCA.java 23 Sep 2009 22:07:58 -0000 >@@ -44,6 +44,7 @@ > CLabel label = ( CLabel )widget; > ControlLCAUtil.processMouseEvents( label ); > ControlLCAUtil.processKeyEvents( label ); >+ ControlLCAUtil.processMenuDetect( label ); > WidgetLCAUtil.processHelp( label ); > } > >Index: src/org/eclipse/swt/internal/custom/scrolledcompositekit/ScrolledCompositeLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/custom/scrolledcompositekit/ScrolledCompositeLCA.java,v >retrieving revision 1.11 >diff -u -r1.11 ScrolledCompositeLCA.java >--- src/org/eclipse/swt/internal/custom/scrolledcompositekit/ScrolledCompositeLCA.java 23 Sep 2009 14:54:31 -0000 1.11 >+++ src/org/eclipse/swt/internal/custom/scrolledcompositekit/ScrolledCompositeLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -80,6 +80,7 @@ > composite.setOrigin( origin ); > ControlLCAUtil.processMouseEvents( composite ); > ControlLCAUtil.processKeyEvents( composite ); >+ ControlLCAUtil.processMenuDetect( composite ); > WidgetLCAUtil.processHelp( composite ); > } > >Index: src/org/eclipse/swt/internal/widgets/combokit/ComboLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/combokit/ComboLCA.java,v >retrieving revision 1.14 >diff -u -r1.14 ComboLCA.java >--- src/org/eclipse/swt/internal/widgets/combokit/ComboLCA.java 21 Sep 2009 20:28:43 -0000 1.14 >+++ src/org/eclipse/swt/internal/widgets/combokit/ComboLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -95,6 +95,7 @@ > ControlLCAUtil.processSelection( combo, null, true ); > ControlLCAUtil.processMouseEvents( combo ); > ControlLCAUtil.processKeyEvents( combo ); >+ ControlLCAUtil.processMenuDetect( combo ); > WidgetLCAUtil.processHelp( combo ); > } > >Index: src/org/eclipse/swt/internal/widgets/expandbarkit/ExpandBarLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/expandbarkit/ExpandBarLCA.java,v >retrieving revision 1.5 >diff -u -r1.5 ExpandBarLCA.java >--- src/org/eclipse/swt/internal/widgets/expandbarkit/ExpandBarLCA.java 10 Aug 2009 17:45:55 -0000 1.5 >+++ src/org/eclipse/swt/internal/widgets/expandbarkit/ExpandBarLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -37,6 +37,7 @@ > > public void readData( final Widget widget ) { > ControlLCAUtil.processKeyEvents( ( Control )widget ); >+ ControlLCAUtil.processMenuDetect( ( Control )widget ); > WidgetLCAUtil.processHelp( widget ); > } > >Index: src/org/eclipse/swt/internal/widgets/datetimekit/DateTimeTimeLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/datetimekit/DateTimeTimeLCA.java,v >retrieving revision 1.7 >diff -u -r1.7 DateTimeTimeLCA.java >--- src/org/eclipse/swt/internal/widgets/datetimekit/DateTimeTimeLCA.java 1 Jul 2009 14:18:22 -0000 1.7 >+++ src/org/eclipse/swt/internal/widgets/datetimekit/DateTimeTimeLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -60,6 +60,7 @@ > ControlLCAUtil.processSelection( dateTime, null, true ); > ControlLCAUtil.processMouseEvents( dateTime ); > ControlLCAUtil.processKeyEvents( dateTime ); >+ ControlLCAUtil.processMenuDetect( dateTime ); > WidgetLCAUtil.processHelp( dateTime ); > } > >Index: src/org/eclipse/swt/internal/widgets/datetimekit/DateTimeCalendarLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/datetimekit/DateTimeCalendarLCA.java,v >retrieving revision 1.12 >diff -u -r1.12 DateTimeCalendarLCA.java >--- src/org/eclipse/swt/internal/widgets/datetimekit/DateTimeCalendarLCA.java 1 Jul 2009 14:18:22 -0000 1.12 >+++ src/org/eclipse/swt/internal/widgets/datetimekit/DateTimeCalendarLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -55,6 +55,7 @@ > ControlLCAUtil.processSelection( dateTime, null, true ); > ControlLCAUtil.processMouseEvents( dateTime ); > ControlLCAUtil.processKeyEvents( dateTime ); >+ ControlLCAUtil.processMenuDetect( dateTime ); > WidgetLCAUtil.processHelp( dateTime ); > } > >Index: src/org/eclipse/swt/internal/widgets/datetimekit/DateTimeDateLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/datetimekit/DateTimeDateLCA.java,v >retrieving revision 1.10 >diff -u -r1.10 DateTimeDateLCA.java >--- src/org/eclipse/swt/internal/widgets/datetimekit/DateTimeDateLCA.java 1 Sep 2009 13:17:38 -0000 1.10 >+++ src/org/eclipse/swt/internal/widgets/datetimekit/DateTimeDateLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -60,6 +60,7 @@ > ControlLCAUtil.processSelection( dateTime, null, true ); > ControlLCAUtil.processMouseEvents( dateTime ); > ControlLCAUtil.processKeyEvents( dateTime ); >+ ControlLCAUtil.processMenuDetect( dateTime ); > WidgetLCAUtil.processHelp( dateTime ); > } > >Index: src/org/eclipse/swt/internal/widgets/textkit/SingleTextLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/textkit/SingleTextLCA.java,v >retrieving revision 1.10 >diff -u -r1.10 SingleTextLCA.java >--- src/org/eclipse/swt/internal/widgets/textkit/SingleTextLCA.java 10 Aug 2009 17:45:54 -0000 1.10 >+++ src/org/eclipse/swt/internal/widgets/textkit/SingleTextLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -35,6 +35,7 @@ > ControlLCAUtil.processSelection( text, null, false ); > ControlLCAUtil.processMouseEvents( text ); > ControlLCAUtil.processKeyEvents( text ); >+ ControlLCAUtil.processMenuDetect( text ); > WidgetLCAUtil.processHelp( text ); > } > >Index: src/org/eclipse/swt/internal/widgets/textkit/MultiTextLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/textkit/MultiTextLCA.java,v >retrieving revision 1.13 >diff -u -r1.13 MultiTextLCA.java >--- src/org/eclipse/swt/internal/widgets/textkit/MultiTextLCA.java 10 Aug 2009 17:45:54 -0000 1.13 >+++ src/org/eclipse/swt/internal/widgets/textkit/MultiTextLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -34,6 +34,7 @@ > TextLCAUtil.readTextAndSelection( text ); > ControlLCAUtil.processMouseEvents( text ); > ControlLCAUtil.processKeyEvents( text ); >+ ControlLCAUtil.processMenuDetect( text ); > WidgetLCAUtil.processHelp( text ); > } > >Index: src/org/eclipse/swt/internal/widgets/textkit/PasswordTextLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/textkit/PasswordTextLCA.java,v >retrieving revision 1.9 >diff -u -r1.9 PasswordTextLCA.java >--- src/org/eclipse/swt/internal/widgets/textkit/PasswordTextLCA.java 10 Aug 2009 17:45:54 -0000 1.9 >+++ src/org/eclipse/swt/internal/widgets/textkit/PasswordTextLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -34,6 +34,7 @@ > ControlLCAUtil.processSelection( text, null, false ); > ControlLCAUtil.processMouseEvents( text ); > ControlLCAUtil.processKeyEvents( text ); >+ ControlLCAUtil.processMenuDetect( text ); > WidgetLCAUtil.processHelp( text ); > } > >Index: src/org/eclipse/swt/internal/widgets/buttonkit/PushButtonDelegateLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/buttonkit/PushButtonDelegateLCA.java,v >retrieving revision 1.10 >diff -u -r1.10 PushButtonDelegateLCA.java >--- src/org/eclipse/swt/internal/widgets/buttonkit/PushButtonDelegateLCA.java 10 Aug 2009 17:45:54 -0000 1.10 >+++ src/org/eclipse/swt/internal/widgets/buttonkit/PushButtonDelegateLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -34,6 +34,7 @@ > ButtonLCAUtil.readSelection( button ); > ControlLCAUtil.processMouseEvents( button ); > ControlLCAUtil.processKeyEvents( button ); >+ ControlLCAUtil.processMenuDetect( button ); > WidgetLCAUtil.processHelp( button ); > } > >Index: src/org/eclipse/swt/internal/widgets/buttonkit/CheckButtonDelegateLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/buttonkit/CheckButtonDelegateLCA.java,v >retrieving revision 1.12 >diff -u -r1.12 CheckButtonDelegateLCA.java >--- src/org/eclipse/swt/internal/widgets/buttonkit/CheckButtonDelegateLCA.java 10 Aug 2009 17:45:54 -0000 1.12 >+++ src/org/eclipse/swt/internal/widgets/buttonkit/CheckButtonDelegateLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -36,6 +36,7 @@ > ControlLCAUtil.processSelection( button, null, true ); > ControlLCAUtil.processMouseEvents( button ); > ControlLCAUtil.processKeyEvents( button ); >+ ControlLCAUtil.processMenuDetect( button ); > WidgetLCAUtil.processHelp( button ); > } > >Index: src/org/eclipse/swt/internal/widgets/buttonkit/RadioButtonDelegateLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/buttonkit/RadioButtonDelegateLCA.java,v >retrieving revision 1.15 >diff -u -r1.15 RadioButtonDelegateLCA.java >--- src/org/eclipse/swt/internal/widgets/buttonkit/RadioButtonDelegateLCA.java 10 Aug 2009 17:45:54 -0000 1.15 >+++ src/org/eclipse/swt/internal/widgets/buttonkit/RadioButtonDelegateLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -39,6 +39,7 @@ > } > ControlLCAUtil.processMouseEvents( button ); > ControlLCAUtil.processKeyEvents( button ); >+ ControlLCAUtil.processMenuDetect( button ); > WidgetLCAUtil.processHelp( button ); > } > >Index: src/org/eclipse/swt/internal/widgets/coolbarkit/CoolBarLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/coolbarkit/CoolBarLCA.java,v >retrieving revision 1.6 >diff -u -r1.6 CoolBarLCA.java >--- src/org/eclipse/swt/internal/widgets/coolbarkit/CoolBarLCA.java 10 Aug 2009 17:45:54 -0000 1.6 >+++ src/org/eclipse/swt/internal/widgets/coolbarkit/CoolBarLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -32,6 +32,7 @@ > Control coolBar = ( Control )widget; > ControlLCAUtil.processMouseEvents( coolBar ); > ControlLCAUtil.processKeyEvents( coolBar ); >+ ControlLCAUtil.processMenuDetect( coolBar ); > WidgetLCAUtil.processHelp( coolBar ); > } > >Index: src/org/eclipse/swt/internal/widgets/labelkit/StandardLabelLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/labelkit/StandardLabelLCA.java,v >retrieving revision 1.7 >diff -u -r1.7 StandardLabelLCA.java >--- src/org/eclipse/swt/internal/widgets/labelkit/StandardLabelLCA.java 14 Sep 2009 09:38:35 -0000 1.7 >+++ src/org/eclipse/swt/internal/widgets/labelkit/StandardLabelLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -51,6 +51,7 @@ > void readData( final Label label ) { > ControlLCAUtil.processMouseEvents( label ); > ControlLCAUtil.processKeyEvents( label ); >+ ControlLCAUtil.processMenuDetect( label ); > WidgetLCAUtil.processHelp( label ); > } > >Index: src/org/eclipse/swt/internal/widgets/labelkit/SeparatorLabelLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/labelkit/SeparatorLabelLCA.java,v >retrieving revision 1.6 >diff -u -r1.6 SeparatorLabelLCA.java >--- src/org/eclipse/swt/internal/widgets/labelkit/SeparatorLabelLCA.java 10 Aug 2009 17:45:54 -0000 1.6 >+++ src/org/eclipse/swt/internal/widgets/labelkit/SeparatorLabelLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -37,6 +37,7 @@ > void readData( final Label label ) { > ControlLCAUtil.processMouseEvents( label ); > ControlLCAUtil.processKeyEvents( label ); >+ ControlLCAUtil.processMenuDetect( label ); > WidgetLCAUtil.processHelp( label ); > } > >Index: src/org/eclipse/swt/internal/widgets/progressbarkit/ProgressBarLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/progressbarkit/ProgressBarLCA.java,v >retrieving revision 1.7 >diff -u -r1.7 ProgressBarLCA.java >--- src/org/eclipse/swt/internal/widgets/progressbarkit/ProgressBarLCA.java 10 Aug 2009 17:45:55 -0000 1.7 >+++ src/org/eclipse/swt/internal/widgets/progressbarkit/ProgressBarLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -42,6 +42,7 @@ > ProgressBar progressBar = ( ProgressBar )widget; > ControlLCAUtil.processMouseEvents( progressBar ); > ControlLCAUtil.processKeyEvents( progressBar ); >+ ControlLCAUtil.processMenuDetect( progressBar ); > WidgetLCAUtil.processHelp( progressBar ); > } > >Index: src/org/eclipse/swt/internal/widgets/toolbarkit/ToolBarLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/toolbarkit/ToolBarLCA.java,v >retrieving revision 1.7 >diff -u -r1.7 ToolBarLCA.java >--- src/org/eclipse/swt/internal/widgets/toolbarkit/ToolBarLCA.java 18 Sep 2009 16:05:32 -0000 1.7 >+++ src/org/eclipse/swt/internal/widgets/toolbarkit/ToolBarLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -33,6 +33,7 @@ > public void readData( final Widget widget ) { > ControlLCAUtil.processMouseEvents( ( Control )widget ); > ControlLCAUtil.processKeyEvents( ( Control )widget ); >+ ControlLCAUtil.processMenuDetect( ( Control )widget ); > WidgetLCAUtil.processHelp( widget ); > } > >Index: src/org/eclipse/swt/internal/widgets/tablekit/TableLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/tablekit/TableLCA.java,v >retrieving revision 1.21 >diff -u -r1.21 TableLCA.java >--- src/org/eclipse/swt/internal/widgets/tablekit/TableLCA.java 10 Aug 2009 17:45:55 -0000 1.21 >+++ src/org/eclipse/swt/internal/widgets/tablekit/TableLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -105,6 +105,7 @@ > readCellToolTipTextRequested( table ); > ControlLCAUtil.processMouseEvents( table ); > ControlLCAUtil.processKeyEvents( table ); >+ ControlLCAUtil.processMenuDetect( table ); > } > > public void renderInitialization( final Widget widget ) throws IOException { >Index: src/org/eclipse/swt/internal/widgets/treekit/TreeLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/treekit/TreeLCA.java,v >retrieving revision 1.10 >diff -u -r1.10 TreeLCA.java >--- src/org/eclipse/swt/internal/widgets/treekit/TreeLCA.java 10 Aug 2009 17:45:55 -0000 1.10 >+++ src/org/eclipse/swt/internal/widgets/treekit/TreeLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -61,6 +61,7 @@ > processWidgetDefaultSelectedEvent( tree ); > ControlLCAUtil.processMouseEvents( tree ); > ControlLCAUtil.processKeyEvents( tree ); >+ ControlLCAUtil.processMenuDetect( tree ); > WidgetLCAUtil.processHelp( tree ); > } > >Index: src/org/eclipse/swt/internal/widgets/sashkit/SashLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/sashkit/SashLCA.java,v >retrieving revision 1.7 >diff -u -r1.7 SashLCA.java >--- src/org/eclipse/swt/internal/widgets/sashkit/SashLCA.java 10 Aug 2009 17:45:54 -0000 1.7 >+++ src/org/eclipse/swt/internal/widgets/sashkit/SashLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -39,6 +39,7 @@ > Sash sash = ( Sash )widget; > ControlLCAUtil.processMouseEvents( sash ); > ControlLCAUtil.processKeyEvents( sash ); >+ ControlLCAUtil.processMenuDetect( sash ); > WidgetLCAUtil.processHelp( sash ); > } > >Index: src/org/eclipse/swt/internal/widgets/groupkit/GroupLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/groupkit/GroupLCA.java,v >retrieving revision 1.6 >diff -u -r1.6 GroupLCA.java >--- src/org/eclipse/swt/internal/widgets/groupkit/GroupLCA.java 10 Aug 2009 17:45:55 -0000 1.6 >+++ src/org/eclipse/swt/internal/widgets/groupkit/GroupLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -32,6 +32,7 @@ > public void readData( final Widget widget ) { > ControlLCAUtil.processMouseEvents( ( Group )widget ); > ControlLCAUtil.processKeyEvents( ( Group )widget ); >+ ControlLCAUtil.processMenuDetect( ( Group )widget ); > WidgetLCAUtil.processHelp( widget ); > } > >Index: src/org/eclipse/swt/internal/custom/ccombokit/CComboLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/custom/ccombokit/CComboLCA.java,v >retrieving revision 1.10 >diff -u -r1.10 CComboLCA.java >--- src/org/eclipse/swt/internal/custom/ccombokit/CComboLCA.java 21 Sep 2009 20:28:43 -0000 1.10 >+++ src/org/eclipse/swt/internal/custom/ccombokit/CComboLCA.java 23 Sep 2009 22:07:58 -0000 >@@ -86,6 +86,7 @@ > ControlLCAUtil.processSelection( ccombo, null, true ); > ControlLCAUtil.processMouseEvents( ccombo ); > ControlLCAUtil.processKeyEvents( ccombo ); >+ ControlLCAUtil.processMenuDetect( ccombo ); > WidgetLCAUtil.processHelp( ccombo ); > } > >Index: src/org/eclipse/swt/internal/custom/ctabfolderkit/CTabFolderLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/custom/ctabfolderkit/CTabFolderLCA.java,v >retrieving revision 1.9 >diff -u -r1.9 CTabFolderLCA.java >--- src/org/eclipse/swt/internal/custom/ctabfolderkit/CTabFolderLCA.java 18 Aug 2009 14:05:12 -0000 1.9 >+++ src/org/eclipse/swt/internal/custom/ctabfolderkit/CTabFolderLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -179,6 +179,8 @@ > ControlLCAUtil.processMouseEvents( tabFolder ); > // Key events > ControlLCAUtil.processKeyEvents( tabFolder ); >+ // Menu Detect events >+ ControlLCAUtil.processMenuDetect( tabFolder ); > // Help events > WidgetLCAUtil.processHelp( tabFolder ); > } >Index: src/org/eclipse/swt/internal/widgets/shellkit/ShellLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/shellkit/ShellLCA.java,v >retrieving revision 1.20 >diff -u -r1.20 ShellLCA.java >--- src/org/eclipse/swt/internal/widgets/shellkit/ShellLCA.java 22 Sep 2009 08:37:19 -0000 1.20 >+++ src/org/eclipse/swt/internal/widgets/shellkit/ShellLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -73,6 +73,7 @@ > processActivate( shell ); > ControlLCAUtil.processMouseEvents( shell ); > ControlLCAUtil.processKeyEvents( shell ); >+ ControlLCAUtil.processMenuDetect( shell ); > WidgetLCAUtil.processHelp( shell ); > } > >Index: src/org/eclipse/swt/internal/widgets/compositekit/CompositeLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/compositekit/CompositeLCA.java,v >retrieving revision 1.6 >diff -u -r1.6 CompositeLCA.java >--- src/org/eclipse/swt/internal/widgets/compositekit/CompositeLCA.java 20 Aug 2009 10:05:26 -0000 1.6 >+++ src/org/eclipse/swt/internal/widgets/compositekit/CompositeLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -32,6 +32,7 @@ > public void readData( final Widget widget ) { > ControlLCAUtil.processMouseEvents( ( Control )widget ); > ControlLCAUtil.processKeyEvents( ( Control )widget ); >+ ControlLCAUtil.processMenuDetect( ( Control )widget ); > } > > public void renderInitialization( final Widget widget ) throws IOException { >Index: src/org/eclipse/swt/internal/widgets/listkit/ListLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/listkit/ListLCA.java,v >retrieving revision 1.10 >diff -u -r1.10 ListLCA.java >--- src/org/eclipse/swt/internal/widgets/listkit/ListLCA.java 27 Aug 2009 16:14:41 -0000 1.10 >+++ src/org/eclipse/swt/internal/widgets/listkit/ListLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -62,6 +62,7 @@ > ControlLCAUtil.processSelection( list, null, true ); > ControlLCAUtil.processMouseEvents( list ); > ControlLCAUtil.processKeyEvents( list ); >+ ControlLCAUtil.processMenuDetect( list ); > WidgetLCAUtil.processHelp( list ); > } > >Index: src/org/eclipse/swt/internal/widgets/tabfolderkit/TabFolderLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/tabfolderkit/TabFolderLCA.java,v >retrieving revision 1.6 >diff -u -r1.6 TabFolderLCA.java >--- src/org/eclipse/swt/internal/widgets/tabfolderkit/TabFolderLCA.java 10 Aug 2009 17:45:55 -0000 1.6 >+++ src/org/eclipse/swt/internal/widgets/tabfolderkit/TabFolderLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -29,6 +29,7 @@ > public void readData( final Widget widget ) { > ControlLCAUtil.processMouseEvents( ( TabFolder )widget ); > ControlLCAUtil.processKeyEvents( ( TabFolder )widget ); >+ ControlLCAUtil.processMenuDetect( ( TabFolder )widget ); > WidgetLCAUtil.processHelp( widget ); > } > >Index: js/org/eclipse/swt/EventUtil.js >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/js/org/eclipse/swt/EventUtil.js,v >retrieving revision 1.9 >diff -u -r1.9 EventUtil.js >--- js/org/eclipse/swt/EventUtil.js 1 Jul 2009 14:18:22 -0000 1.9 >+++ js/org/eclipse/swt/EventUtil.js 23 Sep 2009 22:07:58 -0000 >@@ -295,6 +295,47 @@ > req.send(); > } > } >+ }, >+ >+ menuDetectedByKey : function( evt ) { >+ if( evt.getKeyIdentifier() === "Apps" ) { >+ // stop further handling and default handling by the browser >+ evt.stopPropagation(); >+ evt.preventDefault(); >+ org.eclipse.swt.EventUtil.sendMenuDetected( evt.getTarget(), 0, 0 ); >+ } >+ }, >+ >+ menuDetectedByMouse : function( evt ) { >+ if( evt.getButton() === qx.event.type.MouseEvent.C_BUTTON_RIGHT ) { >+ // stop further handling and default handling by the browser >+ evt.stopPropagation(); >+ evt.preventDefault(); >+ var x = evt.getPageX(); >+ var y = evt.getPageY(); >+ org.eclipse.swt.EventUtil.sendMenuDetected( evt.getTarget(), x, y ); >+ } >+ }, >+ >+ sendMenuDetected : function( widget, x, y ) { >+ if( !org_eclipse_rap_rwt_EventUtil_suspend ) { >+ // send menu detect request to server >+ var widgetManager = org.eclipse.swt.WidgetManager.getInstance(); >+ //var id = widgetManager.findIdByWidget( widget ); >+ // find parent control for the widget that received the event in case >+ // it wasn't the control itself that received the event >+ while( widget != null && !widgetManager.isControl( widget ) ) { >+ widget = widget.getParent ? widget.getParent() : null; >+ } >+ var id = widgetManager.findIdByWidget( widget ); >+ if( id != null ) { >+ var req = org.eclipse.swt.Request.getInstance(); >+ req.addEvent( "org.eclipse.swt.events.menuDetect", id ); >+ req.addParameter( "org.eclipse.swt.events.menuDetect.x", x ); >+ req.addParameter( "org.eclipse.swt.events.menuDetect.y", y ); >+ req.send(); >+ } >+ } > } > > } >Index: src/org/eclipse/swt/internal/widgets/spinnerkit/SpinnerLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/spinnerkit/SpinnerLCA.java,v >retrieving revision 1.10 >diff -u -r1.10 SpinnerLCA.java >--- src/org/eclipse/swt/internal/widgets/spinnerkit/SpinnerLCA.java 10 Aug 2009 17:45:55 -0000 1.10 >+++ src/org/eclipse/swt/internal/widgets/spinnerkit/SpinnerLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -67,6 +67,7 @@ > ControlLCAUtil.processSelection( widget, null, false ); > ControlLCAUtil.processMouseEvents( spinner ); > ControlLCAUtil.processKeyEvents( spinner ); >+ ControlLCAUtil.processMenuDetect( spinner ); > WidgetLCAUtil.processHelp( spinner ); > } > >Index: src/org/eclipse/rwt/internal/lifecycle/JSConst.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/rwt/internal/lifecycle/JSConst.java,v >retrieving revision 1.9 >diff -u -r1.9 JSConst.java >--- src/org/eclipse/rwt/internal/lifecycle/JSConst.java 28 Aug 2009 14:08:33 -0000 1.9 >+++ src/org/eclipse/rwt/internal/lifecycle/JSConst.java 23 Sep 2009 22:07:58 -0000 >@@ -58,6 +58,8 @@ > = "org.eclipse.swt.events.keyDown"; > public static final String EVENT_HELP > = "org.eclipse.swt.events.help"; >+ public static final String EVENT_MENU_DETECT >+ = "org.eclipse.swt.events.menuDetect"; > > > // Parameter names that specify further event details >@@ -99,6 +101,10 @@ > = "org.eclipse.swt.events.keyDown.charCode"; > public static final String EVENT_KEY_DOWN_MODIFIER > = "org.eclipse.swt.events.keyDown.modifier"; >+ public static final String EVENT_MENU_DETECT_X >+ = "org.eclipse.swt.events.menuDetect.x"; >+ public static final String EVENT_MENU_DETECT_Y >+ = "org.eclipse.swt.events.menuDetect.y"; > > // Indicates that a shell was closed on the client side. The parameter > // value holds the id of the shell that was closed. >Index: src/org/eclipse/rwt/lifecycle/ControlLCAUtil.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/rwt/lifecycle/ControlLCAUtil.java,v >retrieving revision 1.15 >diff -u -r1.15 ControlLCAUtil.java >--- src/org/eclipse/rwt/lifecycle/ControlLCAUtil.java 3 Sep 2009 09:57:04 -0000 1.15 >+++ src/org/eclipse/rwt/lifecycle/ControlLCAUtil.java 23 Sep 2009 22:07:58 -0000 >@@ -58,7 +58,15 @@ > = new JSListenerInfo( "mouseup", > "org.eclipse.swt.EventUtil.mouseUp", > JSListenerType.ACTION ); >- >+ private static final JSListenerInfo MENU_DETECT_LISTENER_INFO_MOUSE >+ = new JSListenerInfo( "keydown", >+ "org.eclipse.swt.EventUtil.menuDetectedByKey", >+ JSListenerType.ACTION ); >+ private static final JSListenerInfo MENU_DETECT_LISTENER_INFO_KEY >+ = new JSListenerInfo( "mouseup", >+ "org.eclipse.swt.EventUtil.menuDetectedByMouse", >+ JSListenerType.ACTION ); >+ > private static final String JS_FUNC_ADD_ACTIVATE_LISTENER_WIDGET > = "addActivateListenerWidget"; > private static final String JS_FUNC_REMOVE_ACTIVATE_LISTENER_WIDGET >@@ -70,6 +78,7 @@ > private static final String PROP_MOUSE_LISTENER = "mouseListener"; > private static final String PROP_KEY_LISTENER = "keyListener"; > private static final String PROP_TRAVERSE_LISTENER = "traverseListener"; >+ private static final String PROP_MENU_DETECT_LISTENER = "menuDetectListener"; > private static final String PROP_TAB_INDEX = "tabIndex"; > private static final String PROP_CURSOR = "cursor"; > private static final String PROP_BACKGROUND_IMAGE = "backgroundImage"; >@@ -113,6 +122,7 @@ > * <li>whether KeyListeners are registered</li> > * <li>whether TraverseListeners are registered</li> > * <li>whether HelpListeners are registered</li> >+ * <li>whether MenuDetectListeners are registered</li> > * </ul> > * > * @param control the control whose parameters to preserve >@@ -155,6 +165,7 @@ > adapter.preserve( PROP_TRAVERSE_LISTENER, > Boolean.valueOf( TraverseEvent.hasListener( control ) ) ); > WidgetLCAUtil.preserveHelpListener( control ); >+ preserveMenuDetectListener( control ); > } > > /** >@@ -294,6 +305,7 @@ > writeKeyListener( control ); > writeTraverseListener( control ); > writeKeyEventResponse( control ); >+ writeMenuDetectListener( control ); > WidgetLCAUtil.writeHelpListener( control ); > } > >@@ -589,6 +601,64 @@ > } > } > >+ /////////////////////// >+ // Menu Detect Listener >+ >+ /** >+ * Preserves whether the given <code>widget</code> has one or more >+ * <code>MenuDetect</code>s attached. >+ * >+ * @param control the widget to preserve >+ * @since 1.3 >+ */ >+ public static void preserveMenuDetectListener( final Control control ) { >+ IWidgetAdapter adapter = WidgetUtil.getAdapter( control ); >+ boolean hasListener = MenuDetectEvent.hasListener( control ); >+ adapter.preserve( PROP_MENU_DETECT_LISTENER, >+ Boolean.valueOf( hasListener ) ); >+ } >+ >+ >+ /** >+ * Adds or removes client-side menu detect listeners for the the given >+ * <code>control</code> as necessary. >+ * >+ * @param control >+ * @since 1.3 >+ */ >+ public static void writeMenuDetectListener( final Control control ) >+ throws IOException >+ { >+ boolean hasListener = MenuDetectEvent.hasListener( control ); >+ JSWriter writer = JSWriter.getWriterFor( control ); >+ writer.updateListener( MENU_DETECT_LISTENER_INFO_MOUSE, >+ PROP_MENU_DETECT_LISTENER, >+ hasListener ); >+ writer.updateListener( MENU_DETECT_LISTENER_INFO_KEY, >+ PROP_MENU_DETECT_LISTENER, >+ hasListener ); >+ } >+ >+ /** >+ * Process a <code>HelpEvent</code> if the current request specifies that >+ * there occured a help event for the given <code>widget</code>. >+ * >+ * @param control the control to process >+ * @since 1.3 >+ */ >+ public static void processMenuDetect( final Control control ) { >+ if( WidgetLCAUtil.wasEventSent( control, JSConst.EVENT_MENU_DETECT ) ) { >+ MenuDetectEvent event = new MenuDetectEvent( control ); >+ Point point = readXYParams( control, >+ JSConst.EVENT_MENU_DETECT_X, >+ JSConst.EVENT_MENU_DETECT_Y ); >+ point = control.getDisplay().map( control, null, point ); >+ event.x = point.x; >+ event.y = point.y; >+ event.processEvent(); >+ } >+ } >+ > ////////// > // Z-Index > >Index: src/org/eclipse/swt/internal/widgets/linkkit/LinkLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/linkkit/LinkLCA.java,v >retrieving revision 1.14 >diff -u -r1.14 LinkLCA.java >--- src/org/eclipse/swt/internal/widgets/linkkit/LinkLCA.java 10 Aug 2009 17:45:55 -0000 1.14 >+++ src/org/eclipse/swt/internal/widgets/linkkit/LinkLCA.java 23 Sep 2009 22:07:59 -0000 >@@ -56,6 +56,7 @@ > processSelectionEvent( link ); > ControlLCAUtil.processMouseEvents( link ); > ControlLCAUtil.processKeyEvents( link ); >+ ControlLCAUtil.processMenuDetect( link ); > WidgetLCAUtil.processHelp( link ); > } > >Index: src/org/eclipse/swt/internal/widgets/scalekit/ScaleLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/scalekit/ScaleLCA.java,v >retrieving revision 1.5 >diff -u -r1.5 ScaleLCA.java >--- src/org/eclipse/swt/internal/widgets/scalekit/ScaleLCA.java 10 Aug 2009 17:45:55 -0000 1.5 >+++ src/org/eclipse/swt/internal/widgets/scalekit/ScaleLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -64,6 +64,7 @@ > } > ControlLCAUtil.processSelection( scale, null, true ); > ControlLCAUtil.processKeyEvents( scale ); >+ ControlLCAUtil.processMenuDetect( scale ); > WidgetLCAUtil.processHelp( scale ); > } > >Index: src/org/eclipse/swt/internal/widgets/sliderkit/SliderLCA.java >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/src/org/eclipse/swt/internal/widgets/sliderkit/SliderLCA.java,v >retrieving revision 1.3 >diff -u -r1.3 SliderLCA.java >--- src/org/eclipse/swt/internal/widgets/sliderkit/SliderLCA.java 10 Aug 2009 17:45:54 -0000 1.3 >+++ src/org/eclipse/swt/internal/widgets/sliderkit/SliderLCA.java 23 Sep 2009 22:08:00 -0000 >@@ -67,6 +67,7 @@ > slider.setSelection( Integer.parseInt( value ) ); > } > ControlLCAUtil.processSelection( slider, null, true ); >+ ControlLCAUtil.processMenuDetect( slider ); > WidgetLCAUtil.processHelp( slider ); > } >
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 290303
: 147939 |
147941