From 1bcd12a74e55feee1acd6fe72cc9dfb42462728b Mon Sep 17 00:00:00 2001 From: gnosygnu Date: Tue, 3 Jan 2017 17:15:15 -0500 Subject: [PATCH] Gui: Support Command key on Mac OS X for keyboard shortcuts --- 150_gfui/src/gplx/gfui/kits/swts/Swt_core_lnrs.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/150_gfui/src/gplx/gfui/kits/swts/Swt_core_lnrs.java b/150_gfui/src/gplx/gfui/kits/swts/Swt_core_lnrs.java index 3a9813bb7..2a21585dd 100644 --- a/150_gfui/src/gplx/gfui/kits/swts/Swt_core_lnrs.java +++ b/150_gfui/src/gplx/gfui/kits/swts/Swt_core_lnrs.java @@ -26,6 +26,8 @@ import gplx.GfsCtx; import gplx.String_; import gplx.Tfds; import gplx.core.bits.Bitmask_; +import gplx.core.envs.Op_sys; +import gplx.core.envs.Op_sys_; import gplx.gfui.controls.gxws.GxwElem; import gplx.gfui.controls.standards.Gfui_html; import gplx.gfui.controls.windows.GfuiWin; @@ -188,10 +190,14 @@ class Swt_lnr_key implements KeyListener { case SWT.CTRL: val = IptKey_.Ctrl.Val(); break; case SWT.ALT: val = IptKey_.Alt.Val(); break; case SWT.SHIFT: val = IptKey_.Shift.Val(); break; + + // map Mac OS X cmd to Ctrl + case SWT.COMMAND: val = IptKey_.Ctrl.Val(); break; } // handle mod keys - val = Handle_modifier(ev, is_keydown, val, SWT.CTRL , IptKey_.Ctrl.Val()); + int swt_ctrl = Op_sys.Cur().Tid_is_osx() ? SWT.COMMAND : SWT.CTRL; + val = Handle_modifier(ev, is_keydown, val, swt_ctrl , IptKey_.Ctrl.Val()); val = Handle_modifier(ev, is_keydown, val, SWT.ALT , IptKey_.Alt.Val()); val = Handle_modifier(ev, is_keydown, val, SWT.SHIFT , IptKey_.Shift.Val()); // Tfds.Write(String_.Format("val={0} keydown={1} keyCode={2} stateMask={3} keyLocation={4} character={5}", val, is_keydown, ev.keyCode, ev.stateMask, ev.keyLocation, ev.character));