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"
// - '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)

View File

@ -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: {