From ab3ed8af1f6bb5811ea692da570ab7341ac908ee Mon Sep 17 00:00:00 2001 From: William Toohey Date: Mon, 15 Feb 2016 00:40:46 +1000 Subject: [PATCH] Add undo/redo keyboard shortcuts --- src/js/HuesCore.js | 4 ++-- src/js/HuesEditor.js | 21 +++++++++++++++++++++ 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/src/js/HuesCore.js b/src/js/HuesCore.js index 85e26d0..04f0da3 100644 --- a/src/js/HuesCore.js +++ b/src/js/HuesCore.js @@ -184,7 +184,7 @@ function HuesCore(defaults) { this.error(error); }); - document.onkeydown = (e) => { + document.addEventListener("keydown", e => { e = e || window.event; if(e.defaultPrevented) { return true; @@ -200,7 +200,7 @@ function HuesCore(defaults) { } let key = e.keyCode || e.which; return this.keyHandler(key); - }; + }); } HuesCore.prototype.callEventListeners = function(ev) { diff --git a/src/js/HuesEditor.js b/src/js/HuesEditor.js index 6d29f00..cb8562c 100644 --- a/src/js/HuesEditor.js +++ b/src/js/HuesEditor.js @@ -98,6 +98,27 @@ HuesEditor.prototype.initUI = function() { this.uiCreateControls(); this.uiCreateVisualiser(); + document.addEventListener("keydown", e => { + e = e || window.event; + if(e.defaultPrevented) { + return true; + } + let key = e.keyCode || e.which; + + if (e.ctrlKey) { + if(key == 90) { // Z + this.undo(); + } else if(key == 89) { // Y + this.redo(); + } + if(key == 90 || key == 89) { + e.preventDefault(); + return false; + } + } + return true; + }); + window.addEventListener('resize', this.resize.bind(this)); // Fix Chrome rendering - redraw on tab load document.getElementById("tab-editor").addEventListener("change", this.resize.bind(this));