diff options
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.js | 44 |
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(); +} |