summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2013-03-18 20:59:48 +0400
committerAndrew Dolgov <[email protected]>2013-03-18 20:59:48 +0400
commit5b18c93622e97b9a251f3b85bdb088022fd5c0f3 (patch)
tree900a8059e023a2646f712a0ebc9e69f3b5e40429
parent0ac2f52e14373ab77b691af7ba517323c9b1a52c (diff)
tweak hotkey map notation to allow stuff like shift-arrows
-rw-r--r--classes/backend.php22
-rw-r--r--include/functions.php24
-rw-r--r--js/tt-rss.js6
-rw-r--r--plugins/googlereaderkeys/init.php4
4 files changed, 41 insertions, 15 deletions
diff --git a/classes/backend.php b/classes/backend.php
index 5473c5c79..7848b0714 100644
--- a/classes/backend.php
+++ b/classes/backend.php
@@ -45,6 +45,28 @@ class Backend extends Handler {
$sequence = substr($sequence,
strpos($sequence, "|")+1,
strlen($sequence));
+ } else {
+ $keys = explode(" ", $sequence);
+
+ for ($i = 0; $i < count($keys); $i++) {
+ if (strlen($keys[$i]) > 1) {
+ $tmp = '';
+ foreach (str_split($keys[$i]) as $c) {
+ switch ($c) {
+ case '*':
+ $tmp .= __('Shift') . '+';
+ break;
+ case '^':
+ $tmp .= __('Ctrl') . '+';
+ break;
+ default:
+ $tmp .= $c;
+ }
+ }
+ $keys[$i] = $tmp;
+ }
+ }
+ $sequence = join(" ", $keys);
}
print "<li>";
diff --git a/include/functions.php b/include/functions.php
index 8c2ced801..2120a96b9 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -1928,23 +1928,23 @@
"(191)|/" => "search_dialog",
// "article" => array(
"s" => "toggle_mark",
- "S" => "toggle_publ",
+ "*s" => "toggle_publ",
"u" => "toggle_unread",
- "T" => "edit_tags",
- "D" => "dismiss_selected",
- "X" => "dismiss_read",
+ "*t" => "edit_tags",
+ "*d" => "dismiss_selected",
+ "*x" => "dismiss_read",
"o" => "open_in_new_window",
"c p" => "catchup_below",
"c n" => "catchup_above",
- "N" => "article_scroll_down",
- "P" => "article_scroll_up",
- "a W" => "toggle_widescreen",
+ "*n" => "article_scroll_down",
+ "*p" => "article_scroll_up",
+ "a *w" => "toggle_widescreen",
"e" => "email_article",
"a q" => "close_article",
// "article_selection" => array(
"a a" => "select_all",
"a u" => "select_unread",
- "a U" => "select_marked",
+ "a *u" => "select_marked",
"a p" => "select_published",
"a i" => "select_invert",
"a n" => "select_none",
@@ -1955,9 +1955,9 @@
"f e" => "feed_edit",
"f q" => "feed_catchup",
"f x" => "feed_reverse",
- "f D" => "feed_debug_update",
- "f C" => "toggle_combined_mode",
- "Q" => "catchup_all",
+ "f *d" => "feed_debug_update",
+ "f *c" => "toggle_combined_mode",
+ "*q" => "catchup_all",
"x" => "cat_toggle_collapse",
// "goto" => array(
"g a" => "goto_all",
@@ -1965,7 +1965,7 @@
"g s" => "goto_marked",
"g p" => "goto_published",
"g t" => "goto_tagcloud",
- "g P" => "goto_prefs",
+ "g *p" => "goto_prefs",
// "other" => array(
"(9)|Tab" => "select_article_cursor", // tab
"c l" => "create_label",
diff --git a/js/tt-rss.js b/js/tt-rss.js
index badfe8707..5ada64d31 100644
--- a/js/tt-rss.js
+++ b/js/tt-rss.js
@@ -556,7 +556,7 @@ function hotkey_handler(e) {
if (keycode == 16) return; // ignore lone shift
if (keycode == 17) return; // ignore lone ctrl
- if (!shift_key) keychar = keychar.toLowerCase();
+ keychar = keychar.toLowerCase();
var hotkeys = getInitParam("hotkeys");
@@ -577,7 +577,11 @@ function hotkey_handler(e) {
Element.hide(cmdline);
var hotkey = keychar.search(/[a-zA-Z0-9]/) != -1 ? keychar : "(" + keycode + ")";
+
+ // ensure ^*char notation
+ if (shift_key) hotkey = "*" + hotkey;
if (ctrl_key) hotkey = "^" + hotkey;
+
hotkey = hotkey_prefix ? hotkey_prefix + " " + hotkey : hotkey;
hotkey_prefix = false;
diff --git a/plugins/googlereaderkeys/init.php b/plugins/googlereaderkeys/init.php
index 97133d305..92bf626e6 100644
--- a/plugins/googlereaderkeys/init.php
+++ b/plugins/googlereaderkeys/init.php
@@ -21,8 +21,8 @@ class GoogleReaderKeys extends Plugin {
$hotkeys["j"] = "next_article_noscroll";
$hotkeys["k"] = "prev_article_noscroll";
- $hotkeys["N"] = "next_feed";
- $hotkeys["P"] = "prev_feed";
+ $hotkeys["*n"] = "next_feed";
+ $hotkeys["*p"] = "prev_feed";
$hotkeys["v"] = "open_in_new_window";
$hotkeys["r"] = "feed_refresh";
$hotkeys["(32)|space"] = "next_article";