mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06:00
BUGFIX: restore Mousetrap's bindGlobal plugin
cleared deprecated warnings in admin_customize_view
This commit is contained in:
51
vendor/assets/javascripts/mousetrap.js
vendored
51
vendor/assets/javascripts/mousetrap.js
vendored
@@ -951,3 +951,54 @@
|
||||
define(Mousetrap);
|
||||
}
|
||||
}) (window, document);
|
||||
|
||||
/**
|
||||
* adds a bindGlobal method to Mousetrap that allows you to
|
||||
* bind specific keyboard shortcuts that will still work
|
||||
* inside a text input field
|
||||
*
|
||||
* usage:
|
||||
* Mousetrap.bindGlobal('ctrl+s', _saveChanges);
|
||||
* Mousetrap.unbindGlobal('ctrl+s');
|
||||
*/
|
||||
/* global Mousetrap:true */
|
||||
Mousetrap = (function(Mousetrap) {
|
||||
var _globalCallbacks = {},
|
||||
_originalStopCallback = Mousetrap.stopCallback;
|
||||
|
||||
Mousetrap.stopCallback = function(e, element, combo, sequence) {
|
||||
if (_globalCallbacks[combo] || _globalCallbacks[sequence]) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return _originalStopCallback(e, element, combo);
|
||||
};
|
||||
|
||||
Mousetrap.bindGlobal = function(keys, callback, action) {
|
||||
Mousetrap.bind(keys, callback, action);
|
||||
|
||||
if (keys instanceof Array) {
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
_globalCallbacks[keys[i]] = true;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
_globalCallbacks[keys] = true;
|
||||
};
|
||||
|
||||
Mousetrap.unbindGlobal = function(keys, action) {
|
||||
Mousetrap.unbind(keys, action);
|
||||
|
||||
if (keys instanceof Array) {
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
_globalCallbacks[keys[i]] = false;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
_globalCallbacks[keys] = false;
|
||||
};
|
||||
|
||||
return Mousetrap;
|
||||
}) (Mousetrap);
|
||||
|
||||
Reference in New Issue
Block a user