From 65802d3402dec0cfc995ec5cd1d50078fd35c183 Mon Sep 17 00:00:00 2001 From: Doug Torrance Date: Mon, 18 Jan 2016 20:52:17 -0500 Subject: [PATCH] wmaker: Use window placement settings on other workspaces. Previously, if a window was placed on a workspace other than the current one, the window placement settings (given by WindowPlacement) were ignored and the window was drawn in the upper left hand corner. This is Debian bug #181735, https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=181735 Part of the bug report by Andrew Gorcester from the link above is reproduced here: "When placing a window in a non-active workspace (which usually happens if the user asks for a program to be started when wmaker is launched, and defines an initial workspace in the window's attributes dialog), Windowmaker doesn't follow specified rules on window placement. All windows of programs that don't manage their own window placement (Gaim manages placement itself, for instance) are placed in the far upper-left corner. Usually windows originate from 64, 64, because the clip occupies the upper-left corner by default." --- src/window.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/window.c b/src/window.c index 6e22765d..801d7b6c 100644 --- a/src/window.c +++ b/src/window.c @@ -964,9 +964,8 @@ WWindow *wManageWindow(WScreen *scr, Window window) wWindowConstrainSize(wwin, &width, &height); /* do not ask for window placement if the window is - * transient, during startup, if the initial workspace is another one - * or if the window wants to start iconic. - * If geometry was saved, restore it. */ + * transient, during startup, or if the window wants + * to start iconic. If geometry was saved, restore it. */ { Bool dontBring = False; @@ -975,7 +974,6 @@ WWindow *wManageWindow(WScreen *scr, Window window) y = win_state->state->y; } else if ((wwin->transient_for == None || wPreferences.window_placement != WPM_MANUAL) && !scr->flags.startup - && workspace == scr->current_workspace && !wwin->flags.miniaturized && !wwin->flags.maximized && !(wwin->normal_hints->flags & (USPosition | PPosition))) {