Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTom Schindl2016-02-26 08:48:53 +0000
committerTom Schindl2016-02-26 08:48:53 +0000
commitd4c589c7b5e46bb8b8c148662636d9f9ee0349da (patch)
treeafa50887afc951f6a0915833c95596bd4f465cb5
parente20d056d866da67107fab409bed21068ff9ff0c7 (diff)
downloadorg.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.java41
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();

Back to the top