Updated version, destroy keymanager.

This commit is contained in:
Fmstrat
2019-03-29 11:45:09 -04:00
parent 9e41ac9763
commit e746f736da
2 changed files with 33 additions and 25 deletions

View File

@@ -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');
}
} }

View File

@@ -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
} }