From c7dc7f7faea526fae784e61b241fe5282015b825 Mon Sep 17 00:00:00 2001 From: Philipp Frischmuth Date: Wed, 1 Jun 2016 11:45:18 +0200 Subject: [PATCH] #332: Fix "Shift + Alt" key capture issue When "Shift + Alt + " was used, the OntoWiki JavaScript prevented the default behaviour, even when there was no matching shortcut. This caused issues with e.g. french keyboards, where the "[" key depends on "Shift + Alt". This change will fix this behaviour by only preventing the default, when the action is overwritten by OntoWiki. --- extensions/themes/silverblue/scripts/main.js | 42 ++++++++++++++------ 1 file changed, 30 insertions(+), 12 deletions(-) diff --git a/extensions/themes/silverblue/scripts/main.js b/extensions/themes/silverblue/scripts/main.js index 22ad030b6..3c46a4922 100644 --- a/extensions/themes/silverblue/scripts/main.js +++ b/extensions/themes/silverblue/scripts/main.js @@ -34,24 +34,42 @@ $(document).ready(function() { $(document).keydown(function(e) { if (/view\/?|resource\/properties\/?/gi.test(window.document.baseURI)) { if (e.shiftKey && e.altKey) { - e.preventDefault(); + var shouldPreventDefault = false; + switch(e.which) { //e - 101 - edit E - 69 - case 69 : $('.edit-enable').trigger('click'); break; + case 69 : + $('.edit-enable').trigger('click'); + shouldPreventDefault = true; + break; //a - 97 - add property - A - 65 - case 65 : $('.property-add').trigger('click'); break; + case 65 : + $('.property-add').trigger('click'); + e.preventDefault(); + break; //s - 115 - save S - 83 - case 83 : if ($('.edit-enable').hasClass('active')) { - $('.edit.save').trigger('click'); - }; - break; + case 83 : + if ($('.edit-enable').hasClass('active')) { + $('.edit.save').trigger('click'); + e.preventDefault(); + }; + break; //c - 99 - cancel C - 67 - case 67 : if ($('.edit-enable').hasClass('active')) { - $('.edit.cancel').trigger('click'); - }; - break; + case 67 : + if ($('.edit-enable').hasClass('active')) { + $('.edit.cancel').trigger('click'); + e.preventDefault(); + }; + break; //l - 108 - clone L - 76 - case 76 : $('.clone-resource').trigger('click'); break; + case 76 : + $('.clone-resource').trigger('click'); + e.preventDefault(); + break; + } + + if (shouldPreventDefault) { + e.preventDefault(); } } }