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 59829 Details for
Bug 116906
[Dialogs] Can't restore original size of dialogs remembering size
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
patch replacing double click with context menu
140306_context_menu_restore_size_patch.txt (text/plain), 7.63 KB, created by
Susan McCourt
on 2007-02-26 18:43:59 EST
(
hide
)
Description:
patch replacing double click with context menu
Filename:
MIME Type:
Creator:
Susan McCourt
Created:
2007-02-26 18:43:59 EST
Size:
7.63 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.jface >Index: src/org/eclipse/jface/messages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/messages.properties,v >retrieving revision 1.21 >diff -u -r1.21 messages.properties >--- src/org/eclipse/jface/messages.properties 7 Jul 2006 01:18:01 -0000 1.21 >+++ src/org/eclipse/jface/messages.properties 8 Feb 2007 17:39:44 -0000 >@@ -118,6 +118,7 @@ > PopupDialog.move = &Move > PopupDialog.persistBounds = R&emember Size and Location > PopupDialog.menuTooltip = Menu >+Dialog.restoreDialogSize = &Restore preferred dialog size > > ############################################################ > >Index: src/org/eclipse/jface/dialogs/Dialog.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.jface/src/org/eclipse/jface/dialogs/Dialog.java,v >retrieving revision 1.59 >diff -u -r1.59 Dialog.java >--- src/org/eclipse/jface/dialogs/Dialog.java 8 Sep 2006 19:23:36 -0000 1.59 >+++ src/org/eclipse/jface/dialogs/Dialog.java 8 Feb 2007 17:39:45 -0000 >@@ -16,15 +16,14 @@ > import org.eclipse.core.runtime.IProgressMonitor; > import org.eclipse.core.runtime.IStatus; > import org.eclipse.core.runtime.Status; >+import org.eclipse.jface.action.Action; >+import org.eclipse.jface.action.MenuManager; > import org.eclipse.jface.resource.JFaceResources; > import org.eclipse.jface.util.Policy; > import org.eclipse.jface.window.IShellProvider; > import org.eclipse.jface.window.SameShellProvider; > import org.eclipse.jface.window.Window; > import org.eclipse.swt.SWT; >-import org.eclipse.swt.events.MouseAdapter; >-import org.eclipse.swt.events.MouseEvent; >-import org.eclipse.swt.events.MouseListener; > import org.eclipse.swt.events.SelectionAdapter; > import org.eclipse.swt.events.SelectionEvent; > import org.eclipse.swt.graphics.Font; >@@ -41,6 +40,7 @@ > import org.eclipse.swt.widgets.Composite; > import org.eclipse.swt.widgets.Control; > import org.eclipse.swt.widgets.Display; >+import org.eclipse.swt.widgets.Menu; > import org.eclipse.swt.widgets.Shell; > > /** >@@ -206,18 +206,6 @@ > public Control buttonBar; > > /** >- * A mouse listener that can be used to restore the default size >- * of a dialog. >- * >- * @since 3.2 >- */ >- private MouseListener restoreSizeMouseListener = new MouseAdapter() { >- public void mouseDoubleClick(MouseEvent event) { >- restoreDialogToComputedSize(); >- } >- }; >- >- /** > * Collection of buttons created by the <code>createButton</code> method. > */ > private HashMap buttons = new HashMap(); >@@ -996,8 +984,6 @@ > saveDialogBounds(getShell()); > } > >- removeRestoreSizeMouseListeners(); >- > boolean returnValue = super.close(); > if (returnValue) { > buttons = new HashMap(); >@@ -1111,10 +1097,9 @@ > super.create(); > applyDialogFont(buttonBar); > >- // Register a mouse listener so that the user can restore this >- // size with a double-click. >+ // Register a context menu so that the user can restore the dialog size. > // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=116906 >- addRestoreSizeMouseListeners(); >+ addRestoreSizeMenus(); > } > > /** >@@ -1306,14 +1291,14 @@ > } > > /** >- * Add mouse listeners as needed to provide dialog size restore >- * behavior. Double-clicking in unused areas will restore >+ * Add context menus as needed to provide dialog size restore >+ * behavior. The context menu in unused areas will allow to restore > * the dialog size. > * >- * @since 3.2 >+ * @since 3.3 > */ >- private void addRestoreSizeMouseListeners() { >- // Hook a double click event for restoring the dialog's computed >+ private void addRestoreSizeMenus() { >+ // Hook context menus for restoring the dialog's computed > // size. We hook onto the button bar and the contents, and any > // nested composites in between, in order to accomodate different > // layout and construction styles. >@@ -1322,78 +1307,55 @@ > // Hook onto the button bar composite and > // any nested composites within the button bar. > // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=137315 >- addRestoreSizeMouseListenerToComposites(buttonBar); >+ addRestoreSizeMenuToComposites(buttonBar); > // Hook onto any nested composites between the button bar > // and the contents. > Control control = buttonBar.getParent(); > while (control != dialogContents && control != null) { > if (control.getClass() == Composite.class) { >- control.addMouseListener(restoreSizeMouseListener); >+ hookRestoreSizeContextMenu(control); > } > control = control.getParent(); > } > } > if (dialogContents != null) { >- dialogContents.addMouseListener(restoreSizeMouseListener); >- } >- } >- >- /** >- * Add mouse listeners to the specified control if it is a composite, >- * and any child composites. Called recursively. >- * >- * @since 3.2 >- */ >- private void addRestoreSizeMouseListenerToComposites(Control control) { >- // Check explicitly for instances of Composite, not instances of >- // subclasses of composite. >- // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=140306 >- if (control.getClass() == Composite.class) { >- control.addMouseListener(restoreSizeMouseListener); >- Control [] children = ((Composite)control).getChildren(); >- for (int i=0; i<children.length; i++) { >- addRestoreSizeMouseListenerToComposites(children[i]); >- } >+ hookRestoreSizeContextMenu(dialogContents); > } > } >- >+ > /** >- * Remove any mouse listeners that were registered. >+ * Add a context menu to the specified control. > * >- * @since 3.2 >+ * @since 3.3 > */ >- private void removeRestoreSizeMouseListeners() { >- Control dialogContents = getContents(); >- if (buttonBar != null && !buttonBar.isDisposed()) { >- removeRestoreSizeMouseListenerFromComposites(buttonBar); >- Control control = buttonBar.getParent(); >- while (control != dialogContents && control != null && !control.isDisposed()) { >- if (control.getClass() == Composite.class) { >- control.removeMouseListener(restoreSizeMouseListener); >+ private void hookRestoreSizeContextMenu(Control control) { >+ if (control.getMenu() == null) { >+ MenuManager menuManager= new MenuManager(); >+ menuManager.add(new Action(JFaceResources.getString("Dialog.restoreDialogSize")) { //$NON-NLS-1$ >+ public void run() { >+ restoreDialogToComputedSize(); > } >- control = control.getParent(); >- } >- } >- if (dialogContents != null && !dialogContents.isDisposed()) { >- dialogContents.removeMouseListener(restoreSizeMouseListener); >+ }); >+ Menu menu= menuManager.createContextMenu(control); >+ control.setMenu(menu); > } > } > > /** >- * Remove mouse listeners from the specified control if it is a composite, >+ * Add context menus to the specified control if it is a composite, > * and any child composites. Called recursively. > * > * @since 3.3 > */ >- private void removeRestoreSizeMouseListenerFromComposites(Control control) { >+ private void addRestoreSizeMenuToComposites(Control control) { > // Check explicitly for instances of Composite, not instances of > // subclasses of composite. > // See https://bugs.eclipse.org/bugs/show_bug.cgi?id=140306 > if (control.getClass() == Composite.class) { >- control.removeMouseListener(restoreSizeMouseListener); >+ hookRestoreSizeContextMenu(control); > Control [] children = ((Composite)control).getChildren(); > for (int i=0; i<children.length; i++) { >- removeRestoreSizeMouseListenerFromComposites(children[i]); >+ addRestoreSizeMenuToComposites(children[i]); > } > } > }
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 116906
: 59829