New editor: restored CTRL+K (open sketch folder). Fixes #3103

This commit is contained in:
Federico Fissore 2015-05-12 17:41:16 +02:00
parent 03283bb098
commit 166c1aa7bb
3 changed files with 34 additions and 7 deletions

View File

@ -54,6 +54,7 @@ import processing.app.macosx.ThinkDifferent;
import processing.app.packages.LibraryList;
import processing.app.packages.UserLibrary;
import processing.app.syntax.PdeKeywords;
import processing.app.syntax.SketchTextAreaDefaultInputMap;
import processing.app.tools.MenuScroller;
import processing.app.tools.ZipDeflater;
@ -476,6 +477,8 @@ public class Base {
} else if (parser.isGuiMode()) {
splashScreenHelper.splashText(_("Starting..."));
installKeyboardInputMap();
// Check if there were previously opened sketches to be restored
restoreSketches();
@ -505,6 +508,10 @@ public class Base {
}
}
private void installKeyboardInputMap() {
UIManager.put("RSyntaxTextAreaUI.inputMap", new SketchTextAreaDefaultInputMap());
}
/**
* Post-constructor setup for the editor area. Loads the last
* sketch that was used (if any), and restores other Editor settings.

View File

@ -150,17 +150,22 @@ public class SketchTextArea extends RSyntaxTextArea {
// Removing the default focus traversal keys
// This is because the DefaultKeyboardFocusManager handles the keypress and consumes the event
protected void fixControlTab() {
KeyStroke ctrlTab = KeyStroke.getKeyStroke("ctrl TAB");
KeyStroke ctrlShiftTab = KeyStroke.getKeyStroke("ctrl shift TAB");
removeCTRLTabFromFocusTraversal();
// Remove ctrl-tab from normal focus traversal
removeCTRLSHIFTTabFromFocusTraversal();
}
private void removeCTRLSHIFTTabFromFocusTraversal() {
KeyStroke ctrlShiftTab = KeyStroke.getKeyStroke("ctrl shift TAB");
Set<AWTKeyStroke> backwardKeys = new HashSet<AWTKeyStroke>(this.getFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS));
backwardKeys.remove(ctrlShiftTab);
}
private void removeCTRLTabFromFocusTraversal() {
KeyStroke ctrlTab = KeyStroke.getKeyStroke("ctrl TAB");
Set<AWTKeyStroke> forwardKeys = new HashSet<AWTKeyStroke>(this.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));
forwardKeys.remove(ctrlTab);
this.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, forwardKeys);
// Remove ctrl-shift-tab from normal focus traversal
Set<AWTKeyStroke> backwardKeys = new HashSet<AWTKeyStroke>(this.getFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS));
backwardKeys.remove(ctrlShiftTab);
}

View File

@ -0,0 +1,15 @@
package processing.app.syntax;
import org.fife.ui.rsyntaxtextarea.RSyntaxTextAreaDefaultInputMap;
import javax.swing.*;
import java.awt.event.KeyEvent;
public class SketchTextAreaDefaultInputMap extends RSyntaxTextAreaDefaultInputMap {
public SketchTextAreaDefaultInputMap() {
int defaultMod = getDefaultModifier();
remove(KeyStroke.getKeyStroke(KeyEvent.VK_K, defaultMod));
}
}