From fd1a3b6a2a628e72a149edd0dcd68a79f3061de7 Mon Sep 17 00:00:00 2001 From: Dmitry Trofimov Date: Fri, 30 Aug 2013 19:09:18 +0200 Subject: [PATCH] Fixed short-cup processing (VIM-552). --- plugins/terminal/lib/jediterm-pty-0.08.jar | Bin 157061 -> 157992 bytes .../terminal/JBTabbedTerminalWidget.java | 17 ++++- .../plugins/terminal/JBTerminalPanel.java | 67 ++++++++++++++++-- 3 files changed, 78 insertions(+), 6 deletions(-) diff --git a/plugins/terminal/lib/jediterm-pty-0.08.jar b/plugins/terminal/lib/jediterm-pty-0.08.jar index f4bd38697dc2fc2b65e24be863105d6783eb6927..c0773b3b2bd38781a6dc071374a0d8a9ff602db9 100644 GIT binary patch delta 26637 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 diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/JBTabbedTerminalWidget.java b/plugins/terminal/src/org/jetbrains/plugins/terminal/JBTabbedTerminalWidget.java index 50a7e41ceb71..d5caf0bc8916 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/JBTabbedTerminalWidget.java +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/JBTabbedTerminalWidget.java @@ -10,6 +10,7 @@ import com.jediterm.terminal.ui.TerminalAction; import com.jediterm.terminal.ui.TerminalWidget; import com.jediterm.terminal.ui.settings.SettingsProvider; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import javax.swing.*; import java.awt.event.KeyEvent; @@ -26,12 +27,24 @@ public class JBTabbedTerminalWidget extends TabbedTerminalWidget { convertActions(this, getActions()); } - public static void convertActions(JComponent component, List actions) { + public static void convertActions(@NotNull JComponent component, + @NotNull List actions) { + convertActions(component, actions, null); + } + + public static void convertActions(@NotNull JComponent component, + @NotNull List actions, + @Nullable final Predicate elseAction) { for (final TerminalAction action : actions) { AnAction a = new DumbAwareAction() { @Override public void actionPerformed(AnActionEvent e) { - action.perform(e.getInputEvent() instanceof KeyEvent? (KeyEvent)e.getInputEvent() : null); + KeyEvent event = e.getInputEvent() instanceof KeyEvent ? (KeyEvent)e.getInputEvent() : null; + if (!action.perform(event)) { + if (elseAction != null) { + elseAction.apply(event); + } + } } }; a.registerCustomShortcutSet(action.getKeyCode(), action.getModifiers(), component); diff --git a/plugins/terminal/src/org/jetbrains/plugins/terminal/JBTerminalPanel.java b/plugins/terminal/src/org/jetbrains/plugins/terminal/JBTerminalPanel.java index 788a4f960e85..c3739803a3b1 100644 --- a/plugins/terminal/src/org/jetbrains/plugins/terminal/JBTerminalPanel.java +++ b/plugins/terminal/src/org/jetbrains/plugins/terminal/JBTerminalPanel.java @@ -22,7 +22,12 @@ package org.jetbrains.plugins.terminal; +import com.google.common.base.Predicate; +import com.intellij.openapi.actionSystem.*; import com.intellij.openapi.ide.CopyPasteManager; +import com.intellij.openapi.keymap.Keymap; +import com.intellij.openapi.keymap.KeymapManager; +import com.intellij.openapi.project.DumbAwareAction; import com.intellij.util.JBHiDPIScaledImage; import com.intellij.util.ui.GraphicsUtil; import com.intellij.util.ui.UIUtil; @@ -37,6 +42,7 @@ import java.awt.datatransfer.DataFlavor; import java.awt.datatransfer.StringSelection; import java.awt.datatransfer.Transferable; import java.awt.datatransfer.UnsupportedFlavorException; +import java.awt.event.KeyEvent; import java.awt.image.BufferedImage; import java.awt.image.ImageObserver; import java.io.IOException; @@ -47,7 +53,49 @@ public class JBTerminalPanel extends TerminalPanel { @NotNull StyleState styleState) { super(settingsProvider, backBuffer, styleState); - JBTabbedTerminalWidget.convertActions(this, getActions()); + JBTabbedTerminalWidget.convertActions(this, getActions(), new Predicate() { + @Override + public boolean apply(KeyEvent input) { + JBTerminalPanel.this.handleKeyEvent(input); + return true; + } + }); + + registerKeymapActions(this); + } + + private static void registerKeymapActions(final TerminalPanel terminalPanel) { + Keymap keymap = KeymapManager.getInstance().getActiveKeymap(); + String[] actionIds = keymap.getActionIds(); + + ActionManager actionManager = ActionManager.getInstance(); + for (String actionId : actionIds) { + final AnAction action = actionManager.getAction(actionId); + if (action != null) { + AnAction a = new DumbAwareAction() { + @Override + public void actionPerformed(AnActionEvent e) { + if (e.getInputEvent() instanceof KeyEvent) { + action.update(e); + if (e.getPresentation().isEnabled()) { + action.actionPerformed(e); + } + else { + terminalPanel.handleKeyEvent((KeyEvent)e.getInputEvent()); + } + + e.getInputEvent().consume(); + } + } + }; + for (Shortcut sc : action.getShortcutSet().getShortcuts()) { + if (sc.isKeyboard() && sc instanceof KeyboardShortcut) { + KeyboardShortcut ksc = (KeyboardShortcut)sc; + a.registerCustomShortcutSet(ksc.getFirstKeyStroke().getKeyCode(), ksc.getFirstKeyStroke().getModifiers(), terminalPanel); + } + } + } + } } protected void setupAntialiasing(Graphics graphics, boolean antialiasing) { @@ -69,7 +117,17 @@ public class JBTerminalPanel extends TerminalPanel { drawImage(g, image, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, null); } - public static void drawImage(Graphics g, Image image, int dx1, int dy1, int dx2, int dy2, int sx1, int sy1, int sx2, int sy2, ImageObserver observer) { + public static void drawImage(Graphics g, + Image image, + int dx1, + int dy1, + int dx2, + int dy2, + int sx1, + int sy1, + int sx2, + int sy2, + ImageObserver observer) { if (image instanceof JBHiDPIScaledImage) { final Graphics2D newG = (Graphics2D)g.create(0, 0, image.getWidth(observer), image.getHeight(observer)); newG.scale(0.5, 0.5); @@ -77,10 +135,11 @@ public class JBTerminalPanel extends TerminalPanel { if (img == null) { img = image; } - newG.drawImage(img, 2*dx1, 2*dy1, 2*dx2, 2*dy2, sx1, sy1, sx2, sy2, observer); + newG.drawImage(img, 2 * dx1, 2 * dy1, 2 * dx2, 2 * dy2, sx1, sy1, sx2, sy2, observer); newG.scale(1, 1); newG.dispose(); - } else { + } + else { g.drawImage(image, dx1, dy1, dx2, dy2, sx1, sy1, sx2, sy2, observer); } }