Skip to content

Commit d88e5aa

Browse files
committed
Merge remote-tracking branch 'origin/GT-3455-dragonmacher-dbl-click-key-dialog'
2 parents 9fbc5b9 + d307623 commit d88e5aa

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

Ghidra/Framework/Docking/src/main/java/docking/ActionDialog.java renamed to Ghidra/Framework/Docking/src/main/java/docking/MultiActionDialog.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,15 @@
2222
import javax.swing.*;
2323

2424
import docking.action.DockingActionIf;
25+
import docking.event.mouse.GMouseListenerAdapter;
2526
import docking.widgets.label.GIconLabel;
2627
import docking.widgets.label.GLabel;
2728

2829
/**
2930
* Dialog to show multiple actions that are mapped to the same keystroke;
3031
* allows the user to select which action to do.
3132
*/
32-
public class ActionDialog extends DialogComponentProvider {
33+
public class MultiActionDialog extends DialogComponentProvider {
3334

3435
private String keystrokeName;
3536
private List<ExecutableKeyActionAdapter> list;
@@ -41,7 +42,7 @@ public class ActionDialog extends DialogComponentProvider {
4142
* @param keystrokeName keystroke name
4243
* @param list list of actions
4344
*/
44-
public ActionDialog(String keystrokeName, List<ExecutableKeyActionAdapter> list) {
45+
public MultiActionDialog(String keystrokeName, List<ExecutableKeyActionAdapter> list) {
4546
super("Select Action", true);
4647
this.keystrokeName = keystrokeName;
4748
init();
@@ -53,6 +54,10 @@ public ActionDialog(String keystrokeName, List<ExecutableKeyActionAdapter> list)
5354
*/
5455
@Override
5556
protected void okCallback() {
57+
maybeDoAction();
58+
}
59+
60+
private void maybeDoAction() {
5661
int index = actionList.getSelectedIndex();
5762
if (index < 0) {
5863
return;
@@ -123,6 +128,13 @@ else if (evt.getKeyCode() == KeyEvent.VK_ESCAPE) {
123128
}
124129
});
125130

131+
actionList.addMouseListener(new GMouseListenerAdapter() {
132+
@Override
133+
public void doubleClickTriggered(MouseEvent e) {
134+
maybeDoAction();
135+
}
136+
});
137+
126138
actionList.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
127139
actionList.setVisibleRowCount(5);
128140
JScrollPane listScrollPane = new JScrollPane(actionList);

Ghidra/Framework/Docking/src/main/java/docking/action/MultipleKeyAction.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
public class MultipleKeyAction extends DockingKeyBindingAction {
3131
private List<ActionData> actions = new ArrayList<>();
3232

33-
private ActionDialog dialog;
33+
private MultiActionDialog dialog;
3434

3535
/**
3636
* Creates new MultipleKeyAction
@@ -133,7 +133,7 @@ public void actionPerformed(final ActionEvent event) {
133133
if (list.size() > 1) {
134134
// popup dialog to show multiple actions
135135
if (dialog == null) {
136-
dialog = new ActionDialog(KeyBindingUtils.parseKeyStroke(keyStroke), list);
136+
dialog = new MultiActionDialog(KeyBindingUtils.parseKeyStroke(keyStroke), list);
137137
}
138138
else {
139139
dialog.setActionList(list);

0 commit comments

Comments
 (0)