summaryrefslogtreecommitdiff
path: root/archive/.local/share/gnome-shell/extensions/steal-my-focus@kagesenshi.org/extension.js
diff options
context:
space:
mode:
Diffstat (limited to 'archive/.local/share/gnome-shell/extensions/steal-my-focus@kagesenshi.org/extension.js')
-rw-r--r--archive/.local/share/gnome-shell/extensions/steal-my-focus@kagesenshi.org/extension.js44
1 files changed, 44 insertions, 0 deletions
diff --git a/archive/.local/share/gnome-shell/extensions/steal-my-focus@kagesenshi.org/extension.js b/archive/.local/share/gnome-shell/extensions/steal-my-focus@kagesenshi.org/extension.js
new file mode 100644
index 00000000..1127b3a0
--- /dev/null
+++ b/archive/.local/share/gnome-shell/extensions/steal-my-focus@kagesenshi.org/extension.js
@@ -0,0 +1,44 @@
+const Main = imports.ui.main;
+const WindowAttentionHandler = imports.ui.windowAttentionHandler;
+const Shell = imports.gi.Shell;
+const Lang = imports.lang;
+
+function StealMyFocus() {
+ this._init();
+ this.blacklist = ["Skype"];
+}
+
+StealMyFocus.prototype = {
+ _init : function() {
+ this._tracker = Shell.WindowTracker.get_default();
+ this._handlerid = global.display.connect('window-demands-attention', Lang.bind(this, this._onWindowDemandsAttention));
+ },
+
+ _onWindowDemandsAttention: function(display, window) {
+ for (var i = 0; i < this.blacklist.length; i++) {
+ var name = this.blacklist[i].toLowerCase();
+ if (window.title.toLowerCase().indexOf(name) != -1) {
+ // app in blacklist, return and do nothing
+ return;
+ }
+ }
+ Main.activateWindow(window);
+ },
+
+ destroy: function () {
+ global.display.disconnect(this._handlerid);
+ }
+}
+
+let stealmyfocus;
+
+function init() {
+}
+
+function enable() {
+ stealmyfocus = new StealMyFocus();
+}
+
+function disable() {
+ stealmyfocus.destroy();
+}