added support for meta/command key on OSX...

Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
Alex A. Naanou 2015-04-25 20:17:21 +03:00
parent 20491386d6
commit ec938119cc
2 changed files with 21 additions and 4 deletions

View File

@ -148,24 +148,31 @@ function doc(text, func){
// - 'alt+shift' -> "alt+shift" // - 'alt+shift' -> "alt+shift"
// - 'shift - alt' -> "alt+shift" // - 'shift - alt' -> "alt+shift"
// //
// Bool flag order:
// ctrl, meta, alt, shift
//
// NOTE: 'meta' is the OSX "Command" key...
var normalizeModifiers = var normalizeModifiers =
module.normalizeModifiers = module.normalizeModifiers =
function normalizeModifiers(c, a, s){ function normalizeModifiers(c, m, a, s){
if(c != null && c.constructor === Array){ if(c != null && c.constructor === Array){
a = c[1] m = c[1]
s = c[2] a = c[2]
s = c[3]
c = c[0] c = c[0]
} }
if(typeof(c) == typeof('str')){ if(typeof(c) == typeof('str')){
var modifiers = c var modifiers = c
} else { } else {
var modifiers = (c ? 'ctrl' : '') var modifiers = (c ? 'ctrl' : '')
+ (m ? ' meta' : '')
+ (a ? ' alt' : '') + (a ? ' alt' : '')
+ (s ? ' shift' : '') + (s ? ' shift' : '')
} }
// build the dormalized modifier string... // build the dormalized modifier string...
var res = /ctrl/i.test(modifiers) ? 'ctrl' : '' var res = /ctrl/i.test(modifiers) ? 'ctrl' : ''
res += /meta/i.test(modifiers) ? (res != '' ? '+meta' : 'meta') : ''
res += /alt/i.test(modifiers) ? (res != '' ? '+alt' : 'alt') : '' res += /alt/i.test(modifiers) ? (res != '' ? '+alt' : 'alt') : ''
res += /shift/i.test(modifiers) ? (res != '' ? '+shift' : 'shift') : '' res += /shift/i.test(modifiers) ? (res != '' ? '+shift' : 'shift') : ''
@ -617,7 +624,7 @@ function makeKeyboardHandler(keybindings, unhandled, actions){
var key = evt.keyCode var key = evt.keyCode
// get modifiers... // 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) //window.DEBUG && console.log('KEY:', key, chr, modifiers)

View File

@ -72,6 +72,9 @@ module.GLOBAL_KEYBOARD = {
}), }),
*/ */
}, },
Q: {
meta: 'close',
},
F5: doc('Full reload viewer', F5: doc('Full reload viewer',
function(){ function(){
/* /*
@ -104,6 +107,7 @@ module.GLOBAL_KEYBOARD = {
F11: 'toggleFullScreen', F11: 'toggleFullScreen',
F: { F: {
ctrl: 'F11', ctrl: 'F11',
meta: 'F11',
}, },
// XXX testing... // XXX testing...
@ -124,6 +128,8 @@ module.GLOBAL_KEYBOARD = {
default: 'prevImage', default: 'prevImage',
alt: 'shiftImageLeft!', alt: 'shiftImageLeft!',
ctrl: 'prevScreen', ctrl: 'prevScreen',
// XXX need to prevent default on mac + browser...
meta: 'prevScreen',
}, },
PgUp: 'prevScreen', PgUp: 'prevScreen',
PgDown: 'nextScreen', PgDown: 'nextScreen',
@ -131,6 +137,8 @@ module.GLOBAL_KEYBOARD = {
default: 'nextImage', default: 'nextImage',
alt: 'shiftImageRight!', alt: 'shiftImageRight!',
ctrl: 'nextScreen', ctrl: 'nextScreen',
// XXX need to prevent default on mac + browser...
meta: 'nextScreen',
}, },
'(': 'prevImageInOrder', '(': 'prevImageInOrder',
')': 'nextImageInOrder', ')': 'nextImageInOrder',
@ -199,6 +207,8 @@ module.GLOBAL_KEYBOARD = {
}, },
I: { I: {
ctrl: 'toggleMark!: "ribbon"', ctrl: 'toggleMark!: "ribbon"',
'meta+alt': 'showDevTools',
}, },
B: { B: {