summaryrefslogtreecommitdiffstats
path: root/js
diff options
context:
space:
mode:
authorAlessandro Cosentino <cosenal@gmail.com>2014-01-14 10:34:21 +0100
committerAlessandro Cosentino <cosenal@gmail.com>2014-01-14 10:34:21 +0100
commitbb064aa9cc5681283697da56c5ca9149bcc1e2d3 (patch)
treedcda34f59ca360742c450d01fbda74975d9a6130 /js
parentfe4daa3001edfa128f7069ea0fcafa07d7a35bd7 (diff)
activate shortcuts only when modifier keys are not pressed. fix #449
Diffstat (limited to 'js')
-rw-r--r--js/app/directives/itemshortcuts.coffee75
-rw-r--r--js/public/app.js50
2 files changed, 65 insertions, 60 deletions
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)
]
diff --git a/js/public/app.js b/js/public/app.js
index 5306dd0d8..f8002b608 100644
--- a/js/public/app.js
+++ b/js/public/app.js
@@ -2,7 +2,7 @@
/**
* ownCloud News App - v0.0.1
*
- * Copyright (c) 2013 - Bernhard Posselt <dev@bernhard-posselt.com>
+ * Copyright (c) 2014 - Bernhard Posselt <dev@bernhard-posselt.com>
*
* This file is licensed under the Affero General Public License version 3 or later.
* See the COPYING file
@@ -278,29 +278,31 @@ License along with this library. If not, see <http://www.gnu.org/licenses/>.
var focused, scrollArea;
focused = $(':focus');
if (!(focused.is('input') || focused.is('select') || focused.is('textarea') || focused.is('checkbox') || focused.is('button'))) {
- scrollArea = elm;
- if (e.keyCode === 74 || e.keyCode === 39 || e.keyCode === 78) {
- e.preventDefault();
- return jumpToNextItem(scrollArea);
- } else if (e.keyCode === 75 || e.keyCode === 37 || e.keyCode === 80) {
- e.preventDefault();
- return jumpToPreviousItem(scrollArea);
- } else if (e.keyCode === 85) {
- e.preventDefault();
- return keepUnreadCurrentItem(scrollArea);
- } else if (e.keyCode === 69) {
- e.preventDefault();
- return expandCurrentItem(scrollArea);
- } else if (e.keyCode === 73 || e.keyCode === 83 || e.keyCode === 76) {
- e.preventDefault();
- return starCurrentItem(scrollArea);
- } else if (e.keyCode === 72) {
- e.preventDefault();
- starCurrentItem(scrollArea);
- return jumpToNextItem(scrollArea);
- } else if (e.keyCode === 79) {
- e.preventDefault();
- return openCurrentItem(scrollArea);
+ if (!(e.shiftKey || e.altKey || e.ctrlKey || e.metaKey)) {
+ scrollArea = elm;
+ if (e.keyCode === 74 || e.keyCode === 39 || e.keyCode === 78) {
+ e.preventDefault();
+ return jumpToNextItem(scrollArea);
+ } else if (e.keyCode === 75 || e.keyCode === 37 || e.keyCode === 80) {
+ e.preventDefault();
+ return jumpToPreviousItem(scrollArea);
+ } else if (e.keyCode === 85) {
+ e.preventDefault();
+ return keepUnreadCurrentItem(scrollArea);
+ } else if (e.keyCode === 69) {
+ e.preventDefault();
+ return expandCurrentItem(scrollArea);
+ } else if (e.keyCode === 73 || e.keyCode === 83 || e.keyCode === 76) {
+ e.preventDefault();
+ return starCurrentItem(scrollArea);
+ } else if (e.keyCode === 72) {
+ e.preventDefault();
+ starCurrentItem(scrollArea);
+ return jumpToNextItem(scrollArea);
+ } else if (e.keyCode === 79) {
+ e.preventDefault();
+ return openCurrentItem(scrollArea);
+ }
}
}
});