mirror of
https://github.com/gosticks/PaperWM.git
synced 2026-08-16 22:20:28 +00:00
Always pass an owner object to dynamic_function_ref
This way we can remove a bunch more globally declared variables.
This commit is contained in:
+28
-11
@@ -3,7 +3,7 @@ const convenience = Extension.imports.convenience;
|
||||
const Tiling = Extension.imports.tiling;
|
||||
const Scratch = Extension.imports.scratch;
|
||||
const LiveAltTab = Extension.imports.liveAltTab;
|
||||
const utils = Extension.utils;
|
||||
const utils = Extension.imports.utils;
|
||||
const Gio = imports.gi.Gio;
|
||||
const GLib = imports.gi.GLib;
|
||||
const Meta = imports.gi.Meta;
|
||||
@@ -100,6 +100,8 @@ function enable() {
|
||||
initWorkspaces();
|
||||
}
|
||||
|
||||
let dynamic_function_ref = utils.dynamic_function_ref;
|
||||
|
||||
settings = new Gio.Settings({ schema_id: "org.gnome.desktop.wm.keybindings"});
|
||||
|
||||
settings.set_strv("close", ['<super>c'])
|
||||
@@ -114,24 +116,39 @@ function enable() {
|
||||
as_key_handler("toggle_maximize_horizontally"));
|
||||
|
||||
Meta.keybindings_set_custom_handler("switch-applications",
|
||||
dynamic_function_ref("liveAltTab"));
|
||||
dynamic_function_ref("liveAltTab",
|
||||
LiveAltTab));
|
||||
|
||||
Meta.keybindings_set_custom_handler("switch-to-workspace-up",
|
||||
dynamic_function_ref("preview_navigate"));
|
||||
dynamic_function_ref("preview_navigate",
|
||||
Tiling));
|
||||
|
||||
Meta.keybindings_set_custom_handler("switch-to-workspace-down",
|
||||
dynamic_function_ref("preview_navigate"));
|
||||
dynamic_function_ref("preview_navigate",
|
||||
Tiling));
|
||||
|
||||
|
||||
paperActions.register("switch-next", dynamic_function_ref("preview_navigate"));
|
||||
paperActions.register("switch-previous", dynamic_function_ref("preview_navigate"),
|
||||
Meta.KeyBindingFlags.IS_REVERSED);
|
||||
paperActions.register("switch-next",
|
||||
dynamic_function_ref("preview_navigate",
|
||||
Tiling));
|
||||
paperActions.register("switch-previous",
|
||||
dynamic_function_ref("preview_navigate",
|
||||
Tiling),
|
||||
Meta.KeyBindingFlags.IS_REVERSED);
|
||||
|
||||
paperActions.register("move-left", dynamic_function_ref("preview_navigate"));
|
||||
paperActions.register("move-right", dynamic_function_ref("preview_navigate"));
|
||||
paperActions.register("toggle-scratch-layer", dynamic_function_ref("toggleScratch"));
|
||||
paperActions.register("move-left",
|
||||
dynamic_function_ref("preview_navigate",
|
||||
Tiling));
|
||||
paperActions.register("move-right",
|
||||
dynamic_function_ref("preview_navigate",
|
||||
Tiling));
|
||||
paperActions.register("toggle-scratch-layer",
|
||||
dynamic_function_ref("toggleScratch",
|
||||
Scratch));
|
||||
|
||||
paperActions.register("develop-set-globals", dynamic_function_ref("setDevGlobals"));
|
||||
paperActions.register("develop-set-globals",
|
||||
dynamic_function_ref("setDevGlobals",
|
||||
utils));
|
||||
|
||||
paperActions.register("cycle-width", as_key_handler("cycleWindowWidth"),
|
||||
Meta.KeyBindingFlags.PER_WINDOW);
|
||||
|
||||
+1
-1
@@ -206,7 +206,7 @@ var LiveAltTab = Lang.Class({
|
||||
})
|
||||
|
||||
|
||||
liveAltTab = (display, screen, meta_window, binding) => {
|
||||
var liveAltTab = (display, screen, meta_window, binding) => {
|
||||
let tabPopup = new LiveAltTab();
|
||||
tabPopup.show(binding.is_reversed(), binding.get_name(), binding.get_mask());
|
||||
}
|
||||
|
||||
+1
-1
@@ -14,7 +14,7 @@ function isScratchActive() {
|
||||
return getScratchWindows().some(metaWindow => !metaWindow.minimized);
|
||||
}
|
||||
|
||||
toggleScratch = function() {
|
||||
var toggleScratch = function() {
|
||||
let windows = getScratchWindows();
|
||||
let isSomeShown = isScratchActive();
|
||||
|
||||
|
||||
@@ -11,6 +11,7 @@ const utils = Extension.imports.utils;
|
||||
const Clutter = imports.gi.Clutter;
|
||||
|
||||
var Minimap = Extension.imports.minimap;
|
||||
var Me = Extension.imports.tiling;
|
||||
|
||||
let preferences = Extension.imports.convenience.getSettings();
|
||||
// Gap between windows
|
||||
@@ -60,10 +61,10 @@ var Space = (workspace) => {
|
||||
space.workspace = workspace;
|
||||
space.addSignal =
|
||||
workspace.connect("window-added",
|
||||
dynamic_function_ref("add_handler"));
|
||||
utils.dynamic_function_ref("add_handler", Me));
|
||||
space.removeSignal =
|
||||
workspace.connect("window-removed",
|
||||
dynamic_function_ref("remove_handler"));
|
||||
utils.dynamic_function_ref("remove_handler", Me));
|
||||
space.selectedWindow = null;
|
||||
space.moving = false;
|
||||
space.leftStack = 0; // not implemented
|
||||
@@ -110,11 +111,11 @@ var spaces = (function () {
|
||||
|
||||
spaces.nWorkspacesSignal =
|
||||
global.screen.connect('notify::n-workspaces',
|
||||
Lang.bind(spaces, dynamic_function_ref('workspacesChanged', spaces)));
|
||||
Lang.bind(spaces, utils.dynamic_function_ref('workspacesChanged', spaces)));
|
||||
|
||||
spaces.windowCreatedSignal =
|
||||
global.display.connect('window-created',
|
||||
dynamic_function_ref('window_created'));
|
||||
utils.dynamic_function_ref('window_created', spaces));
|
||||
|
||||
spaces.workspacesChanged = function () {
|
||||
let nWorkspaces = global.screen.n_workspaces;
|
||||
@@ -162,6 +163,18 @@ var spaces = (function () {
|
||||
return this._spaces[workspace];
|
||||
};
|
||||
|
||||
spaces.window_created = function (display, metaWindow, user_data) {
|
||||
// Only run setInitialPosition on inserted windows
|
||||
if (!metaWindow[isInserted])
|
||||
return;
|
||||
delete metaWindow[isInserted];
|
||||
debug('window-created', metaWindow.title);
|
||||
let actor = metaWindow.get_compositor_private();
|
||||
let signal = Symbol();
|
||||
metaWindow[signal] = actor.connect('first-frame',
|
||||
Lang.bind({metaWindow, signal}, setInitialPosition));
|
||||
};
|
||||
|
||||
return spaces;
|
||||
})();
|
||||
window.spaces = spaces;
|
||||
@@ -292,18 +305,6 @@ var insertWindow = function(space, metaWindow, index) {
|
||||
}
|
||||
}
|
||||
|
||||
window_created = (display, metaWindow, user_data) => {
|
||||
// Only run setInitialPosition on inserted windows
|
||||
if (!metaWindow[isInserted])
|
||||
return;
|
||||
delete metaWindow[isInserted];
|
||||
debug('window-created', metaWindow.title);
|
||||
let actor = metaWindow.get_compositor_private();
|
||||
let signal = Symbol();
|
||||
metaWindow[signal] = actor.connect('first-frame',
|
||||
Lang.bind({metaWindow, signal}, setInitialPosition));
|
||||
}
|
||||
|
||||
// Needs to be called by {metaWindow, signal}
|
||||
setInitialPosition = function(actor, existing) {
|
||||
let {metaWindow, signal} = this;
|
||||
@@ -582,7 +583,7 @@ defwinprop({
|
||||
scratch_layer: true
|
||||
});
|
||||
|
||||
add_handler = (ws, meta_window) => {
|
||||
var add_handler = (ws, meta_window) => {
|
||||
debug("window-added", meta_window, meta_window.title, meta_window.window_type, ws.index());
|
||||
if (!add_filter(meta_window)) {
|
||||
return;
|
||||
@@ -628,7 +629,7 @@ add_handler = (ws, meta_window) => {
|
||||
insertWindow(space, meta_window, insert_after_i + 1);
|
||||
}
|
||||
|
||||
remove_handler = (workspace, meta_window) => {
|
||||
var remove_handler = (workspace, meta_window) => {
|
||||
debug("window-removed", meta_window, meta_window.title, workspace.index());
|
||||
// Note: If `meta_window` was closed and had focus at the time, the next
|
||||
// window has already received the `focus` signal at this point.
|
||||
@@ -973,7 +974,7 @@ var PreviewedWindowNavigator = new Lang.Class({
|
||||
}
|
||||
});
|
||||
|
||||
preview_navigate = (display, screen, meta_window, binding) => {
|
||||
var preview_navigate = (display, screen, meta_window, binding) => {
|
||||
let tabPopup = new PreviewedWindowNavigator();
|
||||
tabPopup.show(binding.is_reversed(), binding.get_name(), binding.get_mask())
|
||||
}
|
||||
|
||||
@@ -41,7 +41,7 @@ var framestr = (rect) => {
|
||||
* redefine the function without re-registering all signal handler, keybindings,
|
||||
* etc. (this is like a function symbol in lisp)
|
||||
*/
|
||||
dynamic_function_ref = function(handler_name, owner_obj) {
|
||||
var dynamic_function_ref = function(handler_name, owner_obj) {
|
||||
owner_obj = owner_obj || window;
|
||||
return function() {
|
||||
owner_obj[handler_name].apply(this, arguments);
|
||||
@@ -72,7 +72,7 @@ function in_bounds(array, i) {
|
||||
|
||||
//// Debug and development utils
|
||||
|
||||
setDevGlobals = function() {
|
||||
var setDevGlobals = function() {
|
||||
// Accept the risk of this interfering with existing code for now
|
||||
metaWindow = global.display.focus_window;
|
||||
workspace = global.screen.get_active_workspace();
|
||||
|
||||
Reference in New Issue
Block a user