diff options
author | Tom Schindl | 2016-02-26 08:48:53 +0000 |
---|---|---|
committer | Tom Schindl | 2016-02-26 08:48:53 +0000 |
commit | d4c589c7b5e46bb8b8c148662636d9f9ee0349da (patch) | |
tree | afa50887afc951f6a0915833c95596bd4f465cb5 | |
parent | e20d056d866da67107fab409bed21068ff9ff0c7 (diff) | |
download | org.eclipse.efxclipse-d4c589c7b5e46bb8b8c148662636d9f9ee0349da.tar.gz org.eclipse.efxclipse-d4c589c7b5e46bb8b8c148662636d9f9ee0349da.tar.xz org.eclipse.efxclipse-d4c589c7b5e46bb8b8c148662636d9f9ee0349da.zip |
fixed keybindings for undo/redo
-rw-r--r-- | bundles/code/org.eclipse.fx.text.ui/src/org/eclipse/fx/text/ui/TextViewer.java | 41 |
1 files changed, 35 insertions, 6 deletions
diff --git a/bundles/code/org.eclipse.fx.text.ui/src/org/eclipse/fx/text/ui/TextViewer.java b/bundles/code/org.eclipse.fx.text.ui/src/org/eclipse/fx/text/ui/TextViewer.java index e3335294c..a84eba92a 100644 --- a/bundles/code/org.eclipse.fx.text.ui/src/org/eclipse/fx/text/ui/TextViewer.java +++ b/bundles/code/org.eclipse.fx.text.ui/src/org/eclipse/fx/text/ui/TextViewer.java @@ -115,17 +115,46 @@ public class TextViewer extends AnchorPane implements new InvisibleCharSupport(fTextWidget).install(); } + private static KeyCode getKeyCode(VerifyEvent event) { + // JDK-8150709 + KeyCode kc = event.getCode(); + if( Util.isMacOS() ) { + if( kc == KeyCode.Z || kc == KeyCode.Y ) { + if( event.getText().toUpperCase().equals("Z") ) { //$NON-NLS-1$ + return KeyCode.Z; + } else if( event.getText().toUpperCase().equals("Y") ) { //$NON-NLS-1$ + return KeyCode.Y; + } + } + } + return kc; + } + + private void onVerify(VerifyEvent event) { if (getUndoManager() != null) { - - if (Util.isMacOS()) { - if (event.isMetaDown() && !event.isShiftDown() && event.getCode() == KeyCode.Z) { + if (Util.isWindows()) { + if (event.isControlDown() && !event.isShiftDown() && getKeyCode(event) == KeyCode.Z) { + if (getUndoManager().undoable()) { + getUndoManager().undo(); + event.consume(); + } + } + else if (event.isControlDown() && !event.isShiftDown() && getKeyCode(event) == KeyCode.Y ) { + if (getUndoManager().redoable()) { + getUndoManager().redo(); + event.consume(); + } + } + } + else if( Util.isMacOS() ) { + if (event.isMetaDown() && !event.isShiftDown() && getKeyCode(event) == KeyCode.Z) { if (getUndoManager().undoable()) { getUndoManager().undo(); event.consume(); } } - else if (event.isMetaDown() && !event.isShiftDown() && event.getCode() == KeyCode.Y) { + else if (event.isMetaDown() && event.isShiftDown() && getKeyCode(event) == KeyCode.Z) { if (getUndoManager().redoable()) { getUndoManager().redo(); event.consume(); @@ -133,13 +162,13 @@ public class TextViewer extends AnchorPane implements } } else { - if (event.isControlDown() && !event.isShiftDown() && event.getCode() == KeyCode.Z) { + if (event.isControlDown() && !event.isShiftDown() && getKeyCode(event) == KeyCode.Z) { if (getUndoManager().undoable()) { getUndoManager().undo(); event.consume(); } } - else if (event.isControlDown() && event.isShiftDown() && event.getCode() == KeyCode.Z) { + else if (event.isControlDown() && event.isShiftDown() && getKeyCode(event) == KeyCode.Z) { if (getUndoManager().redoable()) { getUndoManager().redo(); event.consume(); |