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 120199 Details for
Bug 249527
[Preferences] Cannot perform scrolling via keyboard in preference dialog
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Requests
|
Help
|
Log In
[x]
|
Terms of Use
|
Copyright Agent
[patch]
Pref Dialog v03
prefDialog-v03.txt (text/plain), 6.63 KB, created by
Paul Webster
on 2008-12-11 09:58:42 EST
(
hide
)
Description:
Pref Dialog v03
Filename:
MIME Type:
Creator:
Paul Webster
Created:
2008-12-11 09:58:42 EST
Size:
6.63 KB
patch
obsolete
>### Eclipse Workspace Patch 1.0 >#P org.eclipse.ui.workbench >Index: Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java,v >retrieving revision 1.106 >diff -u -r1.106 WorkbenchMessages.java >--- Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java 14 May 2008 17:11:06 -0000 1.106 >+++ Eclipse UI/org/eclipse/ui/internal/WorkbenchMessages.java 11 Dec 2008 14:57:10 -0000 >@@ -443,6 +443,9 @@ > > public static String FileExtension_extensionEmptyMessage; > public static String FileExtension_fileNameInvalidMessage; >+ public static String FilteredPreferenceDialog_Key_Scrolling; >+ >+ > public static String FilteredPreferenceDialog_PreferenceSaveFailed; > public static String FilteredPreferenceDialog_Resize; > >Index: Eclipse UI/org/eclipse/ui/internal/messages.properties >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/messages.properties,v >retrieving revision 1.383 >diff -u -r1.383 messages.properties >--- Eclipse UI/org/eclipse/ui/internal/messages.properties 30 May 2008 17:10:15 -0000 1.383 >+++ Eclipse UI/org/eclipse/ui/internal/messages.properties 11 Dec 2008 14:57:10 -0000 >@@ -407,6 +407,7 @@ > > FileExtension_extensionEmptyMessage = The file extension cannot be empty > FileExtension_fileNameInvalidMessage = The file name cannot include the wild card character (*) in the current location >+FilteredPreferenceDialog_Key_Scrolling=Key &Scrolling > FilteredPreferenceDialog_PreferenceSaveFailed=Preferences save failed. > FilteredPreferenceDialog_Resize = &Resize tree > >Index: Eclipse UI/org/eclipse/ui/internal/dialogs/FilteredPreferenceDialog.java >=================================================================== >RCS file: /cvsroot/eclipse/org.eclipse.ui.workbench/Eclipse UI/org/eclipse/ui/internal/dialogs/FilteredPreferenceDialog.java,v >retrieving revision 1.88 >diff -u -r1.88 FilteredPreferenceDialog.java >--- Eclipse UI/org/eclipse/ui/internal/dialogs/FilteredPreferenceDialog.java 9 May 2008 14:13:11 -0000 1.88 >+++ Eclipse UI/org/eclipse/ui/internal/dialogs/FilteredPreferenceDialog.java 11 Dec 2008 14:57:10 -0000 >@@ -37,6 +37,9 @@ > import org.eclipse.jface.viewers.ViewerFilter; > import org.eclipse.osgi.util.NLS; > import org.eclipse.swt.SWT; >+import org.eclipse.swt.custom.ScrolledComposite; >+import org.eclipse.swt.events.DisposeEvent; >+import org.eclipse.swt.events.DisposeListener; > import org.eclipse.swt.events.FocusAdapter; > import org.eclipse.swt.events.FocusEvent; > import org.eclipse.swt.graphics.Font; >@@ -46,6 +49,9 @@ > import org.eclipse.swt.layout.GridLayout; > import org.eclipse.swt.widgets.Composite; > import org.eclipse.swt.widgets.Control; >+import org.eclipse.swt.widgets.Display; >+import org.eclipse.swt.widgets.Event; >+import org.eclipse.swt.widgets.Listener; > import org.eclipse.swt.widgets.Menu; > import org.eclipse.swt.widgets.Sash; > import org.eclipse.swt.widgets.Shell; >@@ -78,6 +84,16 @@ > public abstract class FilteredPreferenceDialog extends PreferenceDialog > implements IWorkbenchPreferenceContainer { > >+ /** >+ * >+ */ >+ private static final int PAGE_MULTIPLIER = 9; >+ >+ /** >+ * >+ */ >+ private static final int INCREMENT = 10; >+ > protected class PreferenceFilteredTree extends FilteredTree { > /** > * An (optional) additional filter on the TreeViewer. >@@ -539,6 +555,25 @@ > return WorkbenchMessages.FilteredPreferenceDialog_Resize; > } > }); >+ manager.add(new Action() { >+ /* >+ * (non-Javadoc) >+ * >+ * @see org.eclipse.jface.action.Action#run() >+ */ >+ public void run() { >+ activeKeyScrolling(); >+ } >+ >+ /* >+ * (non-Javadoc) >+ * >+ * @see org.eclipse.jface.action.Action#getText() >+ */ >+ public String getText() { >+ return WorkbenchMessages.FilteredPreferenceDialog_Key_Scrolling; >+ } >+ }); > Menu menu = manager.createContextMenu(getShell()); > Rectangle bounds = historyManager.getControl().getBounds(); > Point topLeft = new Point(bounds.x + bounds.width, bounds.y + bounds.height); >@@ -560,6 +595,83 @@ > > return historyManager.getControl(); > } >+ >+ private boolean keyScrollingEnabled = false; >+ private Listener keyScrollingFilter = null; >+ >+ void activeKeyScrolling() { >+ if (keyScrollingFilter == null) { >+ Composite pageParent = getPageContainer().getParent(); >+ if (!(pageParent instanceof ScrolledComposite)) { >+ return; >+ } >+ final ScrolledComposite sc = (ScrolledComposite) pageParent; >+ keyScrollingFilter = new Listener() { >+ public void handleEvent(Event event) { >+ if (!keyScrollingEnabled || sc.isDisposed()) { >+ return; >+ } >+ switch (event.keyCode) { >+ case SWT.ARROW_DOWN: >+ sc.setOrigin(sc.getOrigin().x, sc.getOrigin().y >+ + INCREMENT); >+ break; >+ case SWT.ARROW_UP: >+ sc.setOrigin(sc.getOrigin().x, sc.getOrigin().y >+ - INCREMENT); >+ break; >+ case SWT.ARROW_LEFT: >+ sc.setOrigin(sc.getOrigin().x - INCREMENT, sc >+ .getOrigin().y); >+ break; >+ case SWT.ARROW_RIGHT: >+ sc.setOrigin(sc.getOrigin().x + INCREMENT, sc >+ .getOrigin().y); >+ break; >+ case SWT.PAGE_DOWN: >+ sc.setOrigin(sc.getOrigin().x, sc.getOrigin().y >+ + PAGE_MULTIPLIER * INCREMENT); >+ break; >+ case SWT.PAGE_UP: >+ sc.setOrigin(sc.getOrigin().x, sc.getOrigin().y >+ - PAGE_MULTIPLIER * INCREMENT); >+ break; >+ case SWT.HOME: >+ sc.setOrigin(0, 0); >+ break; >+ case SWT.END: >+ sc.setOrigin(0, sc.getSize().y); >+ break; >+ default: >+ keyScrollingEnabled = false; >+ } >+ event.type = SWT.None; >+ event.doit = false; >+ } >+ }; >+ Display display = PlatformUI.getWorkbench().getDisplay(); >+ display.addFilter(SWT.KeyDown, keyScrollingFilter); >+ display.addFilter(SWT.Traverse, keyScrollingFilter); >+ sc.addDisposeListener(new DisposeListener() { >+ public void widgetDisposed(DisposeEvent e) { >+ removeKeyScrolling(); >+ } >+ }); >+ } >+ keyScrollingEnabled = true; >+ } >+ >+ void removeKeyScrolling() { >+ if (keyScrollingFilter != null) { >+ keyScrollingEnabled = false; >+ Display display = PlatformUI.getWorkbench().getDisplay(); >+ if (display != null) { >+ display.removeFilter(SWT.KeyDown, keyScrollingFilter); >+ display.removeFilter(SWT.Traverse, keyScrollingFilter); >+ } >+ keyScrollingFilter = null; >+ } >+ } > > /* > * (non-Javadoc) >@@ -588,6 +700,7 @@ > showViewHandler.getHandler().dispose(); > showViewHandler = null; > } >+ removeKeyScrolling(); > history.dispose(); > return super.close(); > }
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 249527
:
118919
|
118936
|
119805
| 120199