diff --git a/chrome.manifest b/chrome.manifest
index 8fb8da2b7..b3210ceb1 100644
--- a/chrome.manifest
+++ b/chrome.manifest
@@ -54,6 +54,7 @@ overlay chrome://zotero/content/preferences/preferences.xul chrome://zotero/cont
overlay chrome://zotero/content/preferences/preferences.xul#cite chrome://zotero/content/preferences/preferences_firefox.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
overlay chrome://zotero/content/preferences/preferences_general.xul chrome://zotero/content/preferences/preferences_general_firefox.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
overlay chrome://zotero/content/preferences/preferences_export.xul chrome://zotero/content/preferences/preferences_export_firefox.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
+overlay chrome://zotero/content/preferences/preferences_keys.xul chrome://zotero/content/preferences/preferences_keys_firefox.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
overlay chrome://zotero/content/preferences/preferences_advanced.xul chrome://zotero/content/preferences/preferences_advanced_firefox.xul application={ec8030f7-c20a-464f-9b0e-13a3a9e97384}
overlay chrome://zotero/content/preferences/preferences_advanced.xul chrome://zotero/content/preferences/preferences_advanced_standalone.xul application=zotero@chnm.gmu.edu
diff --git a/chrome/content/zotero/overlay.xul b/chrome/content/zotero/overlay.xul
index c77b4bdfc..126a714fd 100644
--- a/chrome/content/zotero/overlay.xul
+++ b/chrome/content/zotero/overlay.xul
@@ -95,5 +95,9 @@
key="Z"
oncommand="ZoteroOverlay.toggleDisplay();"
modifiers="accel shift" />
+
diff --git a/chrome/content/zotero/preferences/preferences_keys.js b/chrome/content/zotero/preferences/preferences_keys.js
index 748f05adc..04ee513f4 100644
--- a/chrome/content/zotero/preferences/preferences_keys.js
+++ b/chrome/content/zotero/preferences/preferences_keys.js
@@ -27,9 +27,9 @@
Zotero_Preferences.Keys = {
init: function () {
- // Display the appropriate modifier keys for the platform
var rows = document.getElementById('zotero-prefpane-keys').getElementsByTagName('row');
for (var i=0; i
+
+
-
+
-
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
@@ -87,9 +64,21 @@
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -109,9 +98,9 @@
-
+
-
+
diff --git a/chrome/content/zotero/preferences/preferences_keys_firefox.xul b/chrome/content/zotero/preferences/preferences_keys_firefox.xul
new file mode 100644
index 000000000..5b402e599
--- /dev/null
+++ b/chrome/content/zotero/preferences/preferences_keys_firefox.xul
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/chrome/content/zotero/xpcom/zotero.js b/chrome/content/zotero/xpcom/zotero.js
index cc65825fc..f2587e938 100644
--- a/chrome/content/zotero/xpcom/zotero.js
+++ b/chrome/content/zotero/xpcom/zotero.js
@@ -2294,6 +2294,7 @@ Zotero.Keys = new function() {
// Get the key=>command mappings from the prefs
for each(var action in actions) {
var action = action.substr(5); // strips 'keys.'
+ // Remove old pref
if (action == 'overrideGlobal') {
Zotero.Prefs.clear('keys.overrideGlobal');
continue;
@@ -2307,18 +2308,30 @@ Zotero.Keys = new function() {
* Called by ZoteroPane.onLoad()
*/
function windowInit(document) {
- // Zotero pane shortcut
- var keyElem = document.getElementById('key_openZotero');
- if(keyElem) {
- var zKey = Zotero.Prefs.get('keys.openZotero');
- // Only override the default with the pref if the hasn't
- // been manually changed and the pref has been
- if (keyElem.getAttribute('key') == 'Z'
- && keyElem.getAttribute('modifiers') == 'accel shift'
- && zKey != 'Z') {
- keyElem.setAttribute('key', zKey);
+ var globalKeys = [
+ {
+ name: 'openZotero',
+ defaultKey: 'Z'
+ },
+ {
+ name: 'saveToZotero',
+ defaultKey: 'S'
}
- }
+ ];
+
+ globalKeys.forEach(function (x) {
+ let keyElem = document.getElementById('key_' + x.name);
+ if (keyElem) {
+ let prefKey = Zotero.Prefs.get('keys.' + x.name);
+ // Only override the default with the pref if the hasn't
+ // been manually changed and the pref has been
+ if (keyElem.getAttribute('key') == x.defaultKey
+ && keyElem.getAttribute('modifiers') == 'accel shift'
+ && prefKey != x.defaultKey) {
+ keyElem.setAttribute('key', prefKey);
+ }
+ }
+ });
}
diff --git a/chrome/locale/en-US/zotero/preferences.dtd b/chrome/locale/en-US/zotero/preferences.dtd
index 19a5147bd..5c4b48f68 100644
--- a/chrome/locale/en-US/zotero/preferences.dtd
+++ b/chrome/locale/en-US/zotero/preferences.dtd
@@ -126,16 +126,16 @@
+
-
-
+
+
-
diff --git a/defaults/preferences/zotero.js b/defaults/preferences/zotero.js
index d4a57800d..5e4b710c5 100644
--- a/defaults/preferences/zotero.js
+++ b/defaults/preferences/zotero.js
@@ -65,14 +65,15 @@ pref("extensions.zotero.tagCloud", false);
// Keyboard shortcuts
pref("extensions.zotero.keys.openZotero", 'Z');
pref("extensions.zotero.keys.toggleFullscreen", 'F');
-pref("extensions.zotero.keys.library", 'L');
-pref("extensions.zotero.keys.quicksearch", 'K');
+pref("extensions.zotero.keys.saveToZotero", 'S');
pref("extensions.zotero.keys.newItem", 'N');
pref("extensions.zotero.keys.newNote", 'O');
-pref("extensions.zotero.keys.toggleTagSelector", 'T');
+pref("extensions.zotero.keys.importFromClipboard", 'V');
+pref("extensions.zotero.keys.library", 'L');
+pref("extensions.zotero.keys.quicksearch", 'K');
pref("extensions.zotero.keys.copySelectedItemCitationsToClipboard", 'A');
pref("extensions.zotero.keys.copySelectedItemsToClipboard", 'C');
-pref("extensions.zotero.keys.importFromClipboard", 'V');
+pref("extensions.zotero.keys.toggleTagSelector", 'T');
// Fulltext indexing
pref("extensions.zotero.fulltext.textMaxLength", 500000);