From bb064aa9cc5681283697da56c5ca9149bcc1e2d3 Mon Sep 17 00:00:00 2001 From: Alessandro Cosentino Date: Tue, 14 Jan 2014 10:34:21 +0100 Subject: activate shortcuts only when modifier keys are not pressed. fix #449 --- js/app/directives/itemshortcuts.coffee | 75 ++++++++++++++++++---------------- 1 file changed, 39 insertions(+), 36 deletions(-) (limited to 'js/app') diff --git a/js/app/directives/itemshortcuts.coffee b/js/app/directives/itemshortcuts.coffee index e100b2dd2..49dc75b37 100644 --- a/js/app/directives/itemshortcuts.coffee +++ b/js/app/directives/itemshortcuts.coffee @@ -105,42 +105,45 @@ angular.module('News').directive 'itemShortcuts', ['$window', ($window) -> focused.is('checkbox') or focused.is('button')) - scrollArea = elm - # j or right or n - if e.keyCode == 74 or e.keyCode == 39 or e.keyCode == 78 - e.preventDefault() - jumpToNextItem(scrollArea) - - # k or left or p - else if e.keyCode == 75 or e.keyCode == 37 or e.keyCode == 80 - e.preventDefault() - jumpToPreviousItem(scrollArea) - - # u - else if e.keyCode == 85 - e.preventDefault() - keepUnreadCurrentItem(scrollArea) - - # e - else if e.keyCode == 69 - e.preventDefault() - expandCurrentItem(scrollArea) - - # s or i or l - else if e.keyCode == 73 or e.keyCode == 83 or e.keyCode == 76 - e.preventDefault() - starCurrentItem(scrollArea) - - # h - else if e.keyCode == 72 - e.preventDefault() - starCurrentItem(scrollArea) - jumpToNextItem(scrollArea) - - # o - else if e.keyCode == 79 - e.preventDefault() - openCurrentItem(scrollArea) + # activate shortcuts only if modifier keys are not pressed + if not(e.shiftKey or e.altKey or e.ctrlKey or e.metaKey) + + scrollArea = elm + # j or right or n + if e.keyCode == 74 or e.keyCode == 39 or e.keyCode == 78 + e.preventDefault() + jumpToNextItem(scrollArea) + + # k or left or p + else if e.keyCode == 75 or e.keyCode == 37 or e.keyCode == 80 + e.preventDefault() + jumpToPreviousItem(scrollArea) + + # u + else if e.keyCode == 85 + e.preventDefault() + keepUnreadCurrentItem(scrollArea) + + # e + else if e.keyCode == 69 + e.preventDefault() + expandCurrentItem(scrollArea) + + # s or i or l + else if e.keyCode == 73 or e.keyCode == 83 or e.keyCode == 76 + e.preventDefault() + starCurrentItem(scrollArea) + + # h + else if e.keyCode == 72 + e.preventDefault() + starCurrentItem(scrollArea) + jumpToNextItem(scrollArea) + + # o + else if e.keyCode == 79 + e.preventDefault() + openCurrentItem(scrollArea) ] -- cgit v1.2.3