Skip to content

Commit 166c1aa

Browse files
author
Federico Fissore
committed
New editor: restored CTRL+K (open sketch folder). Fixes #3103
1 parent 03283bb commit 166c1aa

File tree

3 files changed

+33
-6
lines changed

3 files changed

+33
-6
lines changed

app/src/processing/app/Base.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@
5454
import processing.app.packages.LibraryList;
5555
import processing.app.packages.UserLibrary;
5656
import processing.app.syntax.PdeKeywords;
57+
import processing.app.syntax.SketchTextAreaDefaultInputMap;
5758
import processing.app.tools.MenuScroller;
5859
import processing.app.tools.ZipDeflater;
5960

@@ -476,6 +477,8 @@ protected void onProgress(Progress progress) {
476477
} else if (parser.isGuiMode()) {
477478
splashScreenHelper.splashText(_("Starting..."));
478479

480+
installKeyboardInputMap();
481+
479482
// Check if there were previously opened sketches to be restored
480483
restoreSketches();
481484

@@ -505,6 +508,10 @@ protected void onProgress(Progress progress) {
505508
}
506509
}
507510

511+
private void installKeyboardInputMap() {
512+
UIManager.put("RSyntaxTextAreaUI.inputMap", new SketchTextAreaDefaultInputMap());
513+
}
514+
508515
/**
509516
* Post-constructor setup for the editor area. Loads the last
510517
* sketch that was used (if any), and restores other Editor settings.

app/src/processing/app/syntax/SketchTextArea.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -150,17 +150,22 @@ private void setSyntaxTheme(int tokenType, String id) {
150150
// Removing the default focus traversal keys
151151
// This is because the DefaultKeyboardFocusManager handles the keypress and consumes the event
152152
protected void fixControlTab() {
153-
KeyStroke ctrlTab = KeyStroke.getKeyStroke("ctrl TAB");
153+
removeCTRLTabFromFocusTraversal();
154+
155+
removeCTRLSHIFTTabFromFocusTraversal();
156+
}
157+
158+
private void removeCTRLSHIFTTabFromFocusTraversal() {
154159
KeyStroke ctrlShiftTab = KeyStroke.getKeyStroke("ctrl shift TAB");
160+
Set<AWTKeyStroke> backwardKeys = new HashSet<AWTKeyStroke>(this.getFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS));
161+
backwardKeys.remove(ctrlShiftTab);
162+
}
155163

156-
// Remove ctrl-tab from normal focus traversal
164+
private void removeCTRLTabFromFocusTraversal() {
165+
KeyStroke ctrlTab = KeyStroke.getKeyStroke("ctrl TAB");
157166
Set<AWTKeyStroke> forwardKeys = new HashSet<AWTKeyStroke>(this.getFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS));
158167
forwardKeys.remove(ctrlTab);
159168
this.setFocusTraversalKeys(KeyboardFocusManager.FORWARD_TRAVERSAL_KEYS, forwardKeys);
160-
161-
// Remove ctrl-shift-tab from normal focus traversal
162-
Set<AWTKeyStroke> backwardKeys = new HashSet<AWTKeyStroke>(this.getFocusTraversalKeys(KeyboardFocusManager.BACKWARD_TRAVERSAL_KEYS));
163-
backwardKeys.remove(ctrlShiftTab);
164169
}
165170

166171

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
package processing.app.syntax;
2+
3+
import org.fife.ui.rsyntaxtextarea.RSyntaxTextAreaDefaultInputMap;
4+
5+
import javax.swing.*;
6+
import java.awt.event.KeyEvent;
7+
8+
public class SketchTextAreaDefaultInputMap extends RSyntaxTextAreaDefaultInputMap {
9+
10+
public SketchTextAreaDefaultInputMap() {
11+
int defaultMod = getDefaultModifier();
12+
13+
remove(KeyStroke.getKeyStroke(KeyEvent.VK_K, defaultMod));
14+
}
15+
}

0 commit comments

Comments
 (0)