From ec938119cc850fd0451b62449a9d6c187a3bd786 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Sat, 25 Apr 2015 20:17:21 +0300 Subject: [PATCH] added support for meta/command key on OSX... Signed-off-by: Alex A. Naanou --- ui (gen4)/lib/keyboard.js | 15 +++++++++++---- ui (gen4)/ui.js | 10 ++++++++++ 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/ui (gen4)/lib/keyboard.js b/ui (gen4)/lib/keyboard.js index 3db322b3..f7e2e93c 100755 --- a/ui (gen4)/lib/keyboard.js +++ b/ui (gen4)/lib/keyboard.js @@ -148,24 +148,31 @@ function doc(text, func){ // - 'alt+shift' -> "alt+shift" // - 'shift - alt' -> "alt+shift" // +// Bool flag order: +// ctrl, meta, alt, shift +// +// NOTE: 'meta' is the OSX "Command" key... var normalizeModifiers = module.normalizeModifiers = -function normalizeModifiers(c, a, s){ +function normalizeModifiers(c, m, a, s){ if(c != null && c.constructor === Array){ - a = c[1] - s = c[2] + m = c[1] + a = c[2] + s = c[3] c = c[0] } if(typeof(c) == typeof('str')){ var modifiers = c } else { var modifiers = (c ? 'ctrl' : '') + + (m ? ' meta' : '') + (a ? ' alt' : '') + (s ? ' shift' : '') } // build the dormalized modifier string... var res = /ctrl/i.test(modifiers) ? 'ctrl' : '' + res += /meta/i.test(modifiers) ? (res != '' ? '+meta' : 'meta') : '' res += /alt/i.test(modifiers) ? (res != '' ? '+alt' : 'alt') : '' res += /shift/i.test(modifiers) ? (res != '' ? '+shift' : 'shift') : '' @@ -617,7 +624,7 @@ function makeKeyboardHandler(keybindings, unhandled, actions){ var key = evt.keyCode // get modifiers... - var modifiers = [evt.ctrlKey, evt.altKey, evt.shiftKey] + var modifiers = [evt.ctrlKey, evt.metaKey, evt.altKey, evt.shiftKey] //window.DEBUG && console.log('KEY:', key, chr, modifiers) diff --git a/ui (gen4)/ui.js b/ui (gen4)/ui.js index fd7610ae..db7d2497 100755 --- a/ui (gen4)/ui.js +++ b/ui (gen4)/ui.js @@ -72,6 +72,9 @@ module.GLOBAL_KEYBOARD = { }), */ }, + Q: { + meta: 'close', + }, F5: doc('Full reload viewer', function(){ /* @@ -104,6 +107,7 @@ module.GLOBAL_KEYBOARD = { F11: 'toggleFullScreen', F: { ctrl: 'F11', + meta: 'F11', }, // XXX testing... @@ -124,6 +128,8 @@ module.GLOBAL_KEYBOARD = { default: 'prevImage', alt: 'shiftImageLeft!', ctrl: 'prevScreen', + // XXX need to prevent default on mac + browser... + meta: 'prevScreen', }, PgUp: 'prevScreen', PgDown: 'nextScreen', @@ -131,6 +137,8 @@ module.GLOBAL_KEYBOARD = { default: 'nextImage', alt: 'shiftImageRight!', ctrl: 'nextScreen', + // XXX need to prevent default on mac + browser... + meta: 'nextScreen', }, '(': 'prevImageInOrder', ')': 'nextImageInOrder', @@ -199,6 +207,8 @@ module.GLOBAL_KEYBOARD = { }, I: { ctrl: 'toggleMark!: "ribbon"', + + 'meta+alt': 'showDevTools', }, B: {