aboutsummaryrefslogtreecommitdiffstats
path: root/lib/mousetrap/plugins/pause
diff options
context:
space:
mode:
authorTeddy Wing2015-05-23 16:21:38 -0400
committerTeddy Wing2015-05-23 16:21:38 -0400
commit3a09e4dd09a6af3b228fcda68aa0709626b5ee51 (patch)
treea434d76ccae2a55cfe4f4c0215a99017de4bba33 /lib/mousetrap/plugins/pause
parent6183a0bb3caf4805ed4242a4ac104b9890db3601 (diff)
downloadPeniquitous-3a09e4dd09a6af3b228fcda68aa0709626b5ee51.tar.bz2
Set up Bower. Install Mousetrap.
* Create limited bower.json file * Create .bowerrc that tells Bower to use the `lib` directory * Install Mousetrap for key events
Diffstat (limited to 'lib/mousetrap/plugins/pause')
-rw-r--r--lib/mousetrap/plugins/pause/README.md13
-rw-r--r--lib/mousetrap/plugins/pause/mousetrap-pause.js31
-rw-r--r--lib/mousetrap/plugins/pause/mousetrap-pause.min.js1
3 files changed, 45 insertions, 0 deletions
diff --git a/lib/mousetrap/plugins/pause/README.md b/lib/mousetrap/plugins/pause/README.md
new file mode 100644
index 0000000..0b3b3bd
--- /dev/null
+++ b/lib/mousetrap/plugins/pause/README.md
@@ -0,0 +1,13 @@
+# Pause/unpause
+
+This extension allows Mousetrap to be paused and unpaused without having to reset keyboard shortcuts and rebind them.
+
+Usage looks like:
+
+```javascript
+// stop Mousetrap events from firing
+Mousetrap.pause();
+
+// allow Mousetrap events to fire again
+Mousetrap.unpause();
+```
diff --git a/lib/mousetrap/plugins/pause/mousetrap-pause.js b/lib/mousetrap/plugins/pause/mousetrap-pause.js
new file mode 100644
index 0000000..0138b8a
--- /dev/null
+++ b/lib/mousetrap/plugins/pause/mousetrap-pause.js
@@ -0,0 +1,31 @@
+/**
+ * adds a pause and unpause method to Mousetrap
+ * this allows you to enable or disable keyboard shortcuts
+ * without having to reset Mousetrap and rebind everything
+ */
+/* global Mousetrap:true */
+(function(Mousetrap) {
+ var _originalStopCallback = Mousetrap.prototype.stopCallback;
+
+ Mousetrap.prototype.stopCallback = function(e, element, combo) {
+ var self = this;
+
+ if (self.paused) {
+ return true;
+ }
+
+ return _originalStopCallback.call(self, e, element, combo);
+ };
+
+ Mousetrap.prototype.pause = function() {
+ var self = this;
+ self.paused = true;
+ };
+
+ Mousetrap.prototype.unpause = function() {
+ var self = this;
+ self.paused = false;
+ };
+
+ Mousetrap.init();
+}) (Mousetrap);
diff --git a/lib/mousetrap/plugins/pause/mousetrap-pause.min.js b/lib/mousetrap/plugins/pause/mousetrap-pause.min.js
new file mode 100644
index 0000000..d3df296
--- /dev/null
+++ b/lib/mousetrap/plugins/pause/mousetrap-pause.min.js
@@ -0,0 +1 @@
+(function(a){var b=a.prototype.stopCallback;a.prototype.stopCallback=function(a,c,d){return this.paused?!0:b.call(this,a,c,d)};a.prototype.pause=function(){this.paused=!0};a.prototype.unpause=function(){this.paused=!1};a.init()})(Mousetrap);