diff options
author | Konrad Kolosowski | 2003-09-04 21:31:32 +0000 |
---|---|---|
committer | Konrad Kolosowski | 2003-09-04 21:31:32 +0000 |
commit | 41dffa5cf99bebce2efc7b0edf5d4e8a4a6bc773 (patch) | |
tree | 8a37a0a43ab2f8b890b81abe961842bc108bb0c9 /org.eclipse.help.ui | |
parent | 6f6a901aa1871b928d74557d421b9ce6a3992969 (diff) | |
download | eclipse.platform.ua-41dffa5cf99bebce2efc7b0edf5d4e8a4a6bc773.tar.gz eclipse.platform.ua-41dffa5cf99bebce2efc7b0edf5d4e8a4a6bc773.tar.xz eclipse.platform.ua-41dffa5cf99bebce2efc7b0edf5d4e8a4a6bc773.zip |
33778 Arrows do not move focus, need to use Tab on F1 popup
Diffstat (limited to 'org.eclipse.help.ui')
-rw-r--r-- | org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java | 29 | ||||
-rw-r--r-- | org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java | 20 |
2 files changed, 36 insertions, 13 deletions
diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java index 23a9db9bb..6c4d07863 100644 --- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java +++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/ContextHelpDialog.java @@ -155,7 +155,11 @@ public class ContextHelpDialog { contents.setLayoutData(new GridData(GridData.FILL_BOTH)); // create the dialog area and button bar createInfoArea(contents); - createLinksArea(contents); + Control c=createLinksArea(contents); + if(c!=null){ + // links exist, make them the only focusable controls + contents.setTabList(new Control[] {c}); + } return contents; } private Control createInfoArea(Composite parent) { @@ -163,11 +167,7 @@ public class ContextHelpDialog { String styledText = context.getText(); if (styledText == null) // no description found in context objects. styledText = WorkbenchResources.getString("WW002"); - StyledText text = - new StyledText( - parent, - SWT.MULTI | SWT.READ_ONLY /* | SWT.NO_FOCUS | SWT.WRAP*/ - ); + Description text = new Description(parent, SWT.MULTI | SWT.READ_ONLY); text.addTraverseListener(new TraverseListener() { public void keyTraversed(TraverseEvent e) { if (e.detail == SWT.TRAVERSE_ESCAPE) { @@ -335,4 +335,21 @@ public class ContextHelpDialog { } }); } + + public class Description extends StyledText { + /** + * @param parent + * @param style + */ + public Description(Composite parent, int style) { + super(parent, style); + } + public boolean setFocus() { + return false; + } + public boolean isFocusControl() { + return false; + } + } + } diff --git a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java index c964f345f..ca45e8dd4 100644 --- a/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java +++ b/org.eclipse.help.ui/src/org/eclipse/help/ui/internal/HyperlinkLabel.java @@ -60,13 +60,19 @@ public class HyperlinkLabel extends Canvas{ addListener(SWT.Traverse, new Listener () { public void handleEvent(Event e) { switch (e.detail) { - case SWT.TRAVERSE_PAGE_NEXT: - case SWT.TRAVERSE_PAGE_PREVIOUS: - case SWT.TRAVERSE_ARROW_NEXT: - case SWT.TRAVERSE_ARROW_PREVIOUS: - case SWT.TRAVERSE_RETURN: - e.doit = false; - return; + // let arrows move focus + case SWT.TRAVERSE_ARROW_NEXT : + e.detail = SWT.TRAVERSE_TAB_NEXT; + break; + case SWT.TRAVERSE_ARROW_PREVIOUS : + e.detail = SWT.TRAVERSE_TAB_PREVIOUS; + break; + + case SWT.TRAVERSE_PAGE_NEXT : + case SWT.TRAVERSE_PAGE_PREVIOUS : + case SWT.TRAVERSE_RETURN : + e.doit = false; + return; } e.doit = true; } |