mirror of
https://github.com/FranP-code/wintile.git
synced 2025-10-13 00:33:46 +00:00
Updated version, destroy keymanager.
This commit is contained in:
55
extension.js
55
extension.js
@@ -18,7 +18,7 @@ window.gsconnect = {
|
|||||||
imports.searchPath.unshift(gsconnect.extdatadir);
|
imports.searchPath.unshift(gsconnect.extdatadir);
|
||||||
|
|
||||||
const KeyBindings = imports.keybindings
|
const KeyBindings = imports.keybindings
|
||||||
let keyManager = new KeyBindings.Manager();
|
let keyManager = null;
|
||||||
var oldbindings = {
|
var oldbindings = {
|
||||||
unmaximize: [],
|
unmaximize: [],
|
||||||
maximize: [],
|
maximize: [],
|
||||||
@@ -285,30 +285,37 @@ function resetBinding(settings, key) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
var enable = function() {
|
var enable = function() {
|
||||||
let desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.keybindings' });
|
if (!keyManager) {
|
||||||
let mutterSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter.keybindings' });
|
keyManager = new KeyBindings.Manager();
|
||||||
oldbindings['unmaximize'] = desktopSettings.get_strv('unmaximize');
|
let desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.keybindings' });
|
||||||
oldbindings['maximize'] = desktopSettings.get_strv('maximize');
|
let mutterSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter.keybindings' });
|
||||||
oldbindings['toggle_tiled_left'] = mutterSettings.get_strv('toggle-tiled-left');
|
oldbindings['unmaximize'] = desktopSettings.get_strv('unmaximize');
|
||||||
oldbindings['toggle_tiled_right'] = mutterSettings.get_strv('toggle-tiled-right');
|
oldbindings['maximize'] = desktopSettings.get_strv('maximize');
|
||||||
changeBinding(desktopSettings, 'unmaximize', '<Super>Down', '<Control><Shift><Super>Down');
|
oldbindings['toggle_tiled_left'] = mutterSettings.get_strv('toggle-tiled-left');
|
||||||
changeBinding(desktopSettings, 'maximize', '<Super>Up', '<Control><Shift><Super>Up');
|
oldbindings['toggle_tiled_right'] = mutterSettings.get_strv('toggle-tiled-right');
|
||||||
changeBinding(mutterSettings, 'toggle-tiled-left', '<Super>Left', '<Control><Shift><Super>Left');
|
changeBinding(desktopSettings, 'unmaximize', '<Super>Down', '<Control><Shift><Super>Down');
|
||||||
changeBinding(mutterSettings, 'toggle-tiled-right', '<Super>Right', '<Control><Shift><Super>Right');
|
changeBinding(desktopSettings, 'maximize', '<Super>Up', '<Control><Shift><Super>Up');
|
||||||
Mainloop.timeout_add(3000, function() {
|
changeBinding(mutterSettings, 'toggle-tiled-left', '<Super>Left', '<Control><Shift><Super>Left');
|
||||||
keyManager.add("<Super>left", function() { requestMove("left") })
|
changeBinding(mutterSettings, 'toggle-tiled-right', '<Super>Right', '<Control><Shift><Super>Right');
|
||||||
keyManager.add("<Super>right", function() { requestMove("right") })
|
Mainloop.timeout_add(3000, function() {
|
||||||
keyManager.add("<Super>up", function() { requestMove("up") })
|
keyManager.add("<Super>left", function() { requestMove("left") })
|
||||||
keyManager.add("<Super>down", function() { requestMove("down") })
|
keyManager.add("<Super>right", function() { requestMove("right") })
|
||||||
});
|
keyManager.add("<Super>up", function() { requestMove("up") })
|
||||||
|
keyManager.add("<Super>down", function() { requestMove("down") })
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
var disable = function() {
|
var disable = function() {
|
||||||
keyManager.removeAll();
|
if (keyManager) {
|
||||||
let desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.keybindings' });
|
keyManager.removeAll();
|
||||||
let mutterSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter.keybindings' });
|
keyManager.destroy();
|
||||||
resetBinding(desktopSettings, 'unmaximize');
|
keyManager = null;
|
||||||
resetBinding(desktopSettings, 'maximize');
|
let desktopSettings = new Gio.Settings({ schema_id: 'org.gnome.desktop.wm.keybindings' });
|
||||||
resetBinding(mutterSettings, 'toggle-tiled-left');
|
let mutterSettings = new Gio.Settings({ schema_id: 'org.gnome.mutter.keybindings' });
|
||||||
resetBinding(mutterSettings, 'toggle-tiled-right');
|
resetBinding(desktopSettings, 'unmaximize');
|
||||||
|
resetBinding(desktopSettings, 'maximize');
|
||||||
|
resetBinding(mutterSettings, 'toggle-tiled-left');
|
||||||
|
resetBinding(mutterSettings, 'toggle-tiled-right');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,5 +3,6 @@
|
|||||||
"description": "Window tiling based on Windows 10 hotkey patterns.",
|
"description": "Window tiling based on Windows 10 hotkey patterns.",
|
||||||
"uuid": "wintile@nowsci.com",
|
"uuid": "wintile@nowsci.com",
|
||||||
"url": "https://github.com/fmstrat/wintile",
|
"url": "https://github.com/fmstrat/wintile",
|
||||||
"shell-version": ["3.28"]
|
"shell-version": ["3.28"],
|
||||||
|
"version": 2
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user