|
@@ -2,6 +2,11 @@ SC.loadPackage({ 'Keyboard': {
|
|
|
|
|
|
comment: 'I am a controller for keyboard commands.',
|
|
comment: 'I am a controller for keyboard commands.',
|
|
|
|
|
|
|
|
+ properties: {
|
|
|
|
+
|
|
|
|
+ helperOverlay: { comment: 'I store the helper overlay DOM node.' }
|
|
|
|
+
|
|
|
|
+ },
|
|
|
|
|
|
methods: {
|
|
methods: {
|
|
|
|
|
|
@@ -11,10 +16,33 @@ SC.loadPackage({ 'Keyboard': {
|
|
|
|
|
|
var self = this;
|
|
var self = this;
|
|
|
|
|
|
|
|
+
|
|
document.addEventListener('keydown', function(evt){
|
|
document.addEventListener('keydown', function(evt){
|
|
self.do('processKeyEvent', evt);
|
|
self.do('processKeyEvent', evt);
|
|
}, false);
|
|
}, false);
|
|
|
|
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+ var helperOverlay = document.createElement('div');
|
|
|
|
+ helperOverlay.setAttribute('id', 'sg-editing-helperOverlay');
|
|
|
|
+ this.set({ helperOverlay: helperOverlay })
|
|
|
|
+
|
|
|
|
+ document.addEventListener('keydown', function(evt){
|
|
|
|
+ if(evt.keyCode === 72){
|
|
|
|
+ var helperOverlay = self.get('helperOverlay');
|
|
|
|
+ helperOverlay.style.width = window.innerWidth + 'px';
|
|
|
|
+ helperOverlay.style.height = window.innerHeight + 'px';
|
|
|
|
+ document.body.appendChild(helperOverlay);
|
|
|
|
+ }
|
|
|
|
+ }, false);
|
|
|
|
+
|
|
|
|
+ document.addEventListener('keyup', function(evt){
|
|
|
|
+ if(evt.keyCode === 72){
|
|
|
|
+ document.body.removeChild(self.get('helperOverlay'));
|
|
|
|
+ }
|
|
|
|
+ }, false);
|
|
|
|
+
|
|
|
|
+
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
|
|
@@ -23,8 +51,8 @@ SC.loadPackage({ 'Keyboard': {
|
|
comment: 'I process key events.',
|
|
comment: 'I process key events.',
|
|
code: function(evt){
|
|
code: function(evt){
|
|
|
|
|
|
- var self = this,
|
|
|
|
- irrelevant = false;
|
|
|
|
|
|
+ var self = this,
|
|
|
|
+ relevant = true;
|
|
|
|
|
|
if(evt.ctrlKey){
|
|
if(evt.ctrlKey){
|
|
|
|
|
|
@@ -95,7 +123,7 @@ SC.loadPackage({ 'Keyboard': {
|
|
break;
|
|
break;
|
|
|
|
|
|
default:
|
|
default:
|
|
- irrelevant = true;
|
|
|
|
|
|
+ relevant = false;
|
|
break;
|
|
break;
|
|
|
|
|
|
}
|
|
}
|
|
@@ -138,13 +166,8 @@ SC.loadPackage({ 'Keyboard': {
|
|
|
|
|
|
break;
|
|
break;
|
|
|
|
|
|
- case 72:
|
|
|
|
- // H (Help)
|
|
|
|
-
|
|
|
|
- break;
|
|
|
|
-
|
|
|
|
default:
|
|
default:
|
|
- irrelevant = true;
|
|
|
|
|
|
+ relevant = false;
|
|
break;
|
|
break;
|
|
|
|
|
|
}
|
|
}
|
|
@@ -152,7 +175,7 @@ SC.loadPackage({ 'Keyboard': {
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
- if(!irrelevant){
|
|
|
|
|
|
+ if(relevant){
|
|
evt.stopPropagation();
|
|
evt.stopPropagation();
|
|
evt.preventDefault();
|
|
evt.preventDefault();
|
|
}
|
|
}
|