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 209961 Details for
Bug 363176
Popup menu is shown on contained widget
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]
revised patch for 1.4 branch
bug363176_sr142.patch (text/plain), 6.38 KB, created by
Tim Buschtoens
on 2012-01-24 06:05:49 EST
(
hide
)
Description:
revised patch for 1.4 branch
Filename:
MIME Type:
Creator:
Tim Buschtoens
Created:
2012-01-24 06:05:49 EST
Size:
6.38 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.rap.rwt.q07 >Index: js/org/eclipse/rwt/widgets/Menu.js >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/js/org/eclipse/rwt/widgets/Attic/Menu.js,v >retrieving revision 1.20 >diff -u -r1.20 Menu.js >--- js/org/eclipse/rwt/widgets/Menu.js 14 Apr 2011 23:01:12 -0000 1.20 >+++ js/org/eclipse/rwt/widgets/Menu.js 24 Jan 2012 11:05:09 -0000 >@@ -65,8 +65,8 @@ > statics : { > > contextMenuHandler : function( event ) { >- var widget = event.getCurrentTarget(); >- var contextMenu = widget.getContextMenu(); >+ var control = org.eclipse.swt.WidgetUtil.getControl( event.getTarget() ); >+ var contextMenu = control ? control.getContextMenu() : null; > if( contextMenu != null ) { > event.stopPropagation(); > contextMenu.setLocation( event.getPageX(), event.getPageY() ); >Index: js/org/eclipse/swt/WidgetUtil.js >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt/org.eclipse.rap.rwt.q07/js/org/eclipse/swt/Attic/WidgetUtil.js,v >retrieving revision 1.8 >diff -u -r1.8 WidgetUtil.js >--- js/org/eclipse/swt/WidgetUtil.js 2 Feb 2011 16:11:11 -0000 1.8 >+++ js/org/eclipse/swt/WidgetUtil.js 24 Jan 2012 11:05:09 -0000 >@@ -34,7 +34,16 @@ > widget.setStyleProperty( "lineHeight", "0" ); > } > }, >- >+ >+ getControl : function( widget ) { >+ var widgetManager = org.eclipse.swt.WidgetManager.getInstance(); >+ var result = widget; >+ while( result != null && !widgetManager.isControl( result ) ) { >+ result = result.getParent ? result.getParent() : null; >+ } >+ return result; >+ }, >+ > /** > * Can be used simulate mouseEvents on the qooxdoo event-layer. > * Manager and handler that are usually notified by >@@ -74,4 +83,4 @@ > } > > } >-}); >\ No newline at end of file >+} ); >\ No newline at end of file >#P org.eclipse.rap.rwt.q07.jstest >Index: js/org/eclipse/rwt/test/tests/MenuTest.js >=================================================================== >RCS file: /cvsroot/rt/org.eclipse.rap/runtime.rwt.test/org.eclipse.rap.rwt.q07.jstest/js/org/eclipse/rwt/test/tests/Attic/MenuTest.js,v >retrieving revision 1.13 >diff -u -r1.13 MenuTest.js >--- js/org/eclipse/rwt/test/tests/MenuTest.js 18 Mar 2011 15:11:27 -0000 1.13 >+++ js/org/eclipse/rwt/test/tests/MenuTest.js 24 Jan 2012 11:05:10 -0000 >@@ -203,6 +203,7 @@ > this.menu.addMenuItemAt( this.menuItem, 0 ); > var widget = new qx.ui.basic.Atom( "bla" ); > widget.addToDocument(); >+ widget.setUserData( "isControl", true ); > widget.setLocation( 10, 10 ); > widget.setDimension( 10, 10 ); > widget.setContextMenu( this.menu ); >@@ -233,7 +234,7 @@ > var menu2 = new org.eclipse.rwt.widgets.Menu(); > menu1.setHasMenuListener( true ); > menu2.setHasMenuListener( true ); >- var parent = new org.eclipse.swt.widgets.Composite(); >+ var parent = this._createControl(); > parent.addToDocument(); > parent.setContextMenu( menu1 ); > parent.addEventListener( >@@ -242,6 +243,7 @@ > var widget = new qx.ui.basic.Atom( "bla" ); > widget.setContextMenu( menu2 ); > widget.setParent( parent ); >+ widget.setUserData( "isControl", true ); > widget.addEventListener( > "contextmenu", > org.eclipse.rwt.widgets.Menu.contextMenuHandler ); >@@ -699,6 +701,7 @@ > widget.setLocation( 10, 10 ); > widget.setDimension( 10, 10 ); > widget.setContextMenu( this.menu ); >+ widget.setUserData( "isControl", true ); > widget.addEventListener( > "contextmenu", > org.eclipse.rwt.widgets.Menu.contextMenuHandler ); >@@ -728,6 +731,7 @@ > this.menu.addMenuItemAt( this.menuItem, 0 ); > var widget = new qx.ui.basic.Atom( "bla" ); > widget.addToDocument(); >+ widget.setUserData( "isControl", true ); > widget.setLocation( 10, 10 ); > widget.setDimension( 10, 10 ); > widget.setContextMenu( this.menu ); >@@ -743,7 +747,8 @@ > widget2.setLocation( 20, 20 ); > widget2.setDimension( 20, 20 ); > widget2.setContextMenu( menu2 ); >- widget2.addEventListener( >+ widget2.setUserData( "isControl", true ); >+ widget2.addEventListener( > "contextmenu", > org.eclipse.rwt.widgets.Menu.contextMenuHandler ); > this.testUtil.flush(); >@@ -789,6 +794,7 @@ > menuItem2.setText( "bla" ); > menu2.addMenuItemAt( menuItem2, 0 ); > var widget = new qx.ui.basic.Atom( "bla" ); >+ widget.setUserData( "isControl", true ); > widget.addToDocument(); > widget.setLocation( 10, 10 ); > widget.setDimension( 10, 10 ); >@@ -962,7 +968,7 @@ > this.menuItem.setText( "bla" ); > this.menu.addMenuItemAt( this.menuItem, 0 ); > var widget = new qx.ui.basic.Atom( "bla" ); >- var parent = new qx.ui.layout.CanvasLayout(); >+ var parent = this._createControl(); > parent.add( widget ); > parent.addToDocument(); > parent.setLocation( 10, 10 ); >@@ -989,6 +995,26 @@ > widget.dispose(); > this.disposeMenu(); > }, >+ >+ testContextmenuNotOpenOnParentControl : function() { >+ var menu1 = new org.eclipse.rwt.widgets.Menu(); >+ menu1.setHasMenuListener( true ); >+ var parent = this._createControl(); >+ parent.addToDocument(); >+ parent.setContextMenu( menu1 ); >+ parent.addEventListener( >+ "contextmenu", >+ org.eclipse.rwt.widgets.Menu.contextMenuHandler ); >+ var widget = this._createControl(); >+ widget.setParent( parent ); >+ this.testUtil.flush(); >+ assertFalse( menu1.isSeeable() ); >+ this.testUtil.rightClick( widget ); >+ assertFalse( menu1.isSeeable() ); >+ menu1.destroy(); >+ widget.destroy(); >+ parent.destroy(); >+ }, > > /************************* Helper *****************************/ > >@@ -1108,6 +1134,12 @@ > layout.arrowWidth = nodeBounds.width; > } > return layout; >+ }, >+ >+ _createControl : function() { >+ var result = new org.eclipse.swt.widgets.Composite(); >+ result.setUserData( "isControl", true ); >+ return result; > } > > }
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
Flags:
rsternberg
:
review+
rsternberg
:
review?
Actions:
View
|
Diff
Attachments on
bug 363176
: 209961