Skip to content

Commit

Permalink
empty
Browse files Browse the repository at this point in the history
  • Loading branch information
rjolly committed Apr 26, 2018
1 parent 96b56f6 commit 1cc3afc
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 30 deletions.
1 change: 1 addition & 0 deletions src/main/java/linoleum/Desktop.java
Original file line number Diff line number Diff line change
Expand Up @@ -205,6 +205,7 @@ public void exceptionThrown(final Exception ex) {
}
});
getContentPane().remove(desktopPane);
desktopPane.destroy();
new ApplicationManager();
getContentPane().add(desktopPane = (DesktopPane) d.readObject(), BorderLayout.CENTER);
} catch (final FileNotFoundException ex) {
Expand Down
65 changes: 35 additions & 30 deletions src/main/java/linoleum/DesktopPane.java
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,36 @@ public class DesktopPane extends JDesktopPane {
private final InputMap inputMap = list.getInputMap();
private final InputMap map = getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
private final Action selectAction = new SelectAction();
private final KeyEventDispatcher dispatcher = new KeyEventDispatcher() {
public boolean dispatchKeyEvent(final KeyEvent e) {
final boolean state;
switch (e.getID()) {
case KeyEvent.KEY_PRESSED:
state = true;
break;
case KeyEvent.KEY_RELEASED:
default:
state = false;
}
switch (e.getKeyCode()) {
case KeyEvent.VK_CONTROL:
if (recording != state) {
setRecording(state);
}
break;
case KeyEvent.VK_ALT:
if (searching != state) {
if (searching) {
commit();
}
searching = state;
}
break;
default:
}
return false;
}
};
private boolean recording;
private boolean searching;
private boolean selecting;
Expand Down Expand Up @@ -138,42 +168,17 @@ public DesktopPane() {
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, InputEvent.ALT_DOWN_MASK), inputMap.get(KeyStroke.getKeyStroke(KeyEvent.VK_DOWN, 0)));
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_A, InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK), inputMap.get(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0)));
inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_TAB, InputEvent.SHIFT_DOWN_MASK | InputEvent.ALT_DOWN_MASK), inputMap.get(KeyStroke.getKeyStroke(KeyEvent.VK_UP, 0)));
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
public boolean dispatchKeyEvent(final KeyEvent e) {
final boolean state;
switch (e.getID()) {
case KeyEvent.KEY_PRESSED:
state = true;
break;
case KeyEvent.KEY_RELEASED:
default:
state = false;
}
switch (e.getKeyCode()) {
case KeyEvent.VK_CONTROL:
if (recording != state) {
setRecording(state);
}
break;
case KeyEvent.VK_ALT:
if (searching != state) {
if (searching) {
commit();
}
searching = state;
}
break;
default:
}
return false;
}
});
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(dispatcher);
list.setModel(model);
list.setCellRenderer(renderer);
list.setLayoutOrientation(JList.VERTICAL_WRAP);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
}

void destroy() {
KeyboardFocusManager.getCurrentKeyboardFocusManager().removeKeyEventDispatcher(dispatcher);
}

void setReopen(final boolean reopen) {
putClientProperty("DesktopPane.reopen", this.reopen = reopen);
}
Expand Down

0 comments on commit 1cc3afc

Please sign in to comment.