From a3770198ec2f6b9d4111d0e29b41578ab843bef5 Mon Sep 17 00:00:00 2001 From: "Egor.Ushakov" Date: Mon, 13 Jan 2014 19:06:51 +0400 Subject: [PATCH] IDEA-21297 Debugger does not react to "F2" key which should open "Set Value" dialog --- .../src/com/intellij/debugger/ui/ValueHint.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/ValueHint.java b/java/debugger/impl/src/com/intellij/debugger/ui/ValueHint.java index 2adcbb0bb0c3..475ec7aa4277 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/ValueHint.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/ValueHint.java @@ -19,6 +19,7 @@ import com.intellij.codeInsight.hint.HintUtil; import com.intellij.debugger.DebuggerBundle; import com.intellij.debugger.DebuggerInvocationUtil; import com.intellij.debugger.DebuggerManagerEx; +import com.intellij.debugger.actions.DebuggerActions; import com.intellij.debugger.engine.DebugProcessImpl; import com.intellij.debugger.engine.JVMName; import com.intellij.debugger.engine.JVMNameUtil; @@ -34,6 +35,10 @@ import com.intellij.debugger.ui.impl.DebuggerTreeRenderer; import com.intellij.debugger.ui.impl.InspectDebuggerTree; import com.intellij.debugger.ui.impl.watch.WatchItemDescriptor; import com.intellij.debugger.ui.tree.render.DescriptorLabelListener; +import com.intellij.openapi.Disposable; +import com.intellij.openapi.actionSystem.ActionManager; +import com.intellij.openapi.actionSystem.AnAction; +import com.intellij.openapi.actionSystem.CustomShortcutSet; import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.editor.Editor; @@ -54,6 +59,7 @@ import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.*; +import java.awt.event.KeyEvent; /** * @author lex @@ -210,6 +216,16 @@ public class ValueHint extends AbstractValueHint { return myCurrentExpression.getText(); } }); + + final AnAction setValueAction = ActionManager.getInstance().getAction(DebuggerActions.SET_VALUE); + setValueAction.registerCustomShortcutSet(new CustomShortcutSet(KeyStroke.getKeyStroke(KeyEvent.VK_F2, 0)), tree); + Disposer.register(tree, new Disposable() { + @Override + public void dispose() { + setValueAction.unregisterCustomShortcutSet(tree); + } + }); + showTreePopup(tree, debuggerContext, expressionText, new ValueHintTreeComponent(ValueHint.this, tree, expressionText)); }