Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAnton Leherbauer2009-12-14 07:50:51 +0000
committerAnton Leherbauer2009-12-14 07:50:51 +0000
commita326de8cbd92a925dfee4071b6c156a942e9766a (patch)
tree7b76b4cf4cf0b3909ca14ba7eb066e547541371e
parent1a64d13fda67e02a939cc012b9df632b709ef619 (diff)
downloadorg.eclipse.cdt-a326de8cbd92a925dfee4071b6c156a942e9766a.tar.gz
org.eclipse.cdt-a326de8cbd92a925dfee4071b6c156a942e9766a.tar.xz
org.eclipse.cdt-a326de8cbd92a925dfee4071b6c156a942e9766a.zip
[297387] [disassembly] When location combo box has focus, 'Home' key shouldn't jump to PC address
Patch from Navid Mehregani
-rw-r--r--dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java26
-rw-r--r--dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/actions/AddressBarContributionItem.java10
-rw-r--r--dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/actions/JumpToAddressAction.java8
3 files changed, 36 insertions, 8 deletions
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java
index 15d6001330d..88b54aa83e9 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/DisassemblyPart.java
@@ -223,7 +223,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
// private static final String COMMAND_ID_RUN_TO_LINE = "org.eclipse.debug.ui.commands.RunToLine"; //$NON-NLS-1$
// private static final String COMMAND_ID_TOGGLE_STEPPING_MODE = "org.eclipse.cdt.dsf.debug.ui.debug.ui.menu.showDisassemblyAction"; //$NON-NLS-1$
- private static final String KEY_BINDING_CONTEXT_DISASSEMBLY = "org.eclipse.cdt.dsf.debug.ui.disassembly.context"; //$NON-NLS-1$
+ public static final String KEY_BINDING_CONTEXT_DISASSEMBLY = "org.eclipse.cdt.dsf.debug.ui.disassembly.context"; //$NON-NLS-1$
protected DisassemblyViewer fViewer;
@@ -749,10 +749,9 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
handlerService.deactivateHandlers(fHandlerActivations);
fHandlerActivations = null;
}
- if (fContextActivation != null) {
- IContextService ctxService = (IContextService)site.getService(IContextService.class);
- ctxService.deactivateContext(fContextActivation);
- }
+
+ deactivateDisassemblyContext();
+
fViewer = null;
setDebugContext(null);
DsfSession.removeSessionEndedListener(this);
@@ -1187,8 +1186,7 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
private void contributeToActionBars() {
IWorkbenchPartSite site = getSite();
site.setSelectionProvider(new DisassemblySelectionProvider(this));
- IContextService ctxService = (IContextService)site.getService(IContextService.class);
- fContextActivation = ctxService.activateContext(KEY_BINDING_CONTEXT_DISASSEMBLY);
+ activateDisassemblyContext();
contributeToActionBars(getActionBars());
}
@@ -3409,5 +3407,17 @@ public abstract class DisassemblyPart extends WorkbenchPart implements IDisassem
MessageDialog messageDialog = new MessageDialog(PlatformUI.getWorkbench().getDisplay().getActiveShell(), DisassemblyMessages.Disassembly_Error_Dialog_title, null, message, MessageDialog.ERROR, new String[]{DisassemblyMessages.Disassembly_Error_Dialog_ok_button}, 0);
messageDialog.open();
}
-
+
+ public void activateDisassemblyContext() {
+ IContextService ctxService = (IContextService)getSite().getService(IContextService.class);
+ if (ctxService!=null)
+ fContextActivation = ctxService.activateContext(KEY_BINDING_CONTEXT_DISASSEMBLY);
+ }
+
+ public void deactivateDisassemblyContext() {
+ if (fContextActivation != null) {
+ IContextService ctxService = (IContextService)getSite().getService(IContextService.class);
+ ctxService.deactivateContext(fContextActivation);
+ }
+ }
}
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/actions/AddressBarContributionItem.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/actions/AddressBarContributionItem.java
index 965c0dfbfec..2dd75cce187 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/actions/AddressBarContributionItem.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/actions/AddressBarContributionItem.java
@@ -232,6 +232,11 @@ public class AddressBarContributionItem extends ContributionItem {
};
public void focusGained(FocusEvent e) {
+ // [nmehregani] bugzilla 297387: 'Home' shouldn't jump to PC address when focus is on location combo box
+ if (action instanceof JumpToAddressAction)
+ ((JumpToAddressAction)action).deactivateDisassemblyContext();
+ // end 297387
+
// Erase the guide text when the focus is gained.
if (addressBox.getText().trim().equals(initialText))
addressBox.setText(""); //$NON-NLS-1$
@@ -241,6 +246,11 @@ public class AddressBarContributionItem extends ContributionItem {
}
public void focusLost(FocusEvent e) {
+ // [nmehregani] bugzilla 297387: 'Home' shouldn't jump to PC address when focus is on location combo box
+ if (action instanceof JumpToAddressAction)
+ ((JumpToAddressAction)action).activateDisassemblyContext();
+ // end 297387
+
// Re-insert the guide text when the focus is lost and the text
// field is empty.
if (addressBox.getText().trim().length() == 0)
diff --git a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/actions/JumpToAddressAction.java b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/actions/JumpToAddressAction.java
index a5196d7dec4..372977be8cc 100644
--- a/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/actions/JumpToAddressAction.java
+++ b/dsf/org.eclipse.cdt.dsf.ui/src/org/eclipse/cdt/dsf/debug/internal/ui/disassembly/actions/JumpToAddressAction.java
@@ -61,4 +61,12 @@ public class JumpToAddressAction extends Action {
}
}
}
+
+ protected void activateDisassemblyContext() {
+ fDisassemblyPart.activateDisassemblyContext();
+ }
+
+ protected void deactivateDisassemblyContext() {
+ fDisassemblyPart.deactivateDisassemblyContext();
+ }
}

Back to the top