web/res/js/mousetrap-global-bind.js
changeset 1304 10974bff4dae
parent 1198 ff4b567d51f2
equal deleted inserted replaced
1303:20e00017dd60 1304:10974bff4dae
     5  *
     5  *
     6  * usage:
     6  * usage:
     7  * Mousetrap.bindGlobal('ctrl+s', _saveChanges);
     7  * Mousetrap.bindGlobal('ctrl+s', _saveChanges);
     8  */
     8  */
     9 /* global Mousetrap:true */
     9 /* global Mousetrap:true */
    10 Mousetrap = (function(Mousetrap) {
    10 (function(Mousetrap) {
    11     var _globalCallbacks = {},
    11     var _globalCallbacks = {};
    12         _originalStopCallback = Mousetrap.stopCallback;
    12     var _originalStopCallback = Mousetrap.prototype.stopCallback;
    13 
    13 
    14     Mousetrap.stopCallback = function(e, element, combo, sequence) {
    14     Mousetrap.prototype.stopCallback = function(e, element, combo, sequence) {
       
    15         var self = this;
       
    16 
       
    17         if (self.paused) {
       
    18             return true;
       
    19         }
       
    20 
    15         if (_globalCallbacks[combo] || _globalCallbacks[sequence]) {
    21         if (_globalCallbacks[combo] || _globalCallbacks[sequence]) {
    16             return false;
    22             return false;
    17         }
    23         }
    18 
    24 
    19         return _originalStopCallback(e, element, combo);
    25         return _originalStopCallback.call(self, e, element, combo);
    20     };
    26     };
    21 
    27 
    22     Mousetrap.bindGlobal = function(keys, callback, action) {
    28     Mousetrap.prototype.bindGlobal = function(keys, callback, action) {
    23         Mousetrap.bind(keys, callback, action);
    29         var self = this;
       
    30         self.bind(keys, callback, action);
    24 
    31 
    25         if (keys instanceof Array) {
    32         if (keys instanceof Array) {
    26             for (var i = 0; i < keys.length; i++) {
    33             for (var i = 0; i < keys.length; i++) {
    27                 _globalCallbacks[keys[i]] = true;
    34                 _globalCallbacks[keys[i]] = true;
    28             }
    35             }
    30         }
    37         }
    31 
    38 
    32         _globalCallbacks[keys] = true;
    39         _globalCallbacks[keys] = true;
    33     };
    40     };
    34 
    41 
    35     return Mousetrap;
    42     Mousetrap.init();
    36 }) (Mousetrap);
    43 }) (Mousetrap);