diff options
author | mathias <mathias> | 2005-05-14 01:55:31 (GMT) |
---|---|---|
committer | mathias <mathias> | 2005-05-14 01:55:31 (GMT) |
commit | 33e359a0dfd4b6e6640b452f99d199377fee396d (patch) | |
tree | 2d9da927957a105533d5fd15192b0a380c6bcc44 | |
parent | eddedd50d1504ffe6e351b055b1f356dd91e385c (diff) | |
download | fluxbox-33e359a0dfd4b6e6640b452f99d199377fee396d.zip fluxbox-33e359a0dfd4b6e6640b452f99d199377fee396d.tar.bz2 |
Vadim pointed out that _NET_CLIENT_LIST and _NET_CLIENT_LIST_STACKING are not updated
when sending _BLACKBOX_NOTIFY_WINDOW_DEL
_NET_WM_DESKTOP and _WIN_WORKSPACE had wrong initial values (-1), which lead to probems
with (eg) fbpager (unaware of newly created windows and such things)
-rw-r--r-- | src/Ewmh.cc | 10 | ||||
-rw-r--r-- | src/Ewmh.hh | 4 | ||||
-rw-r--r-- | src/Gnome.cc | 2 |
3 files changed, 11 insertions, 5 deletions
diff --git a/src/Ewmh.cc b/src/Ewmh.cc index 843b8d2..46bb94e 100644 --- a/src/Ewmh.cc +++ b/src/Ewmh.cc | |||
@@ -241,7 +241,8 @@ void Ewmh::setupFrame(FluxboxWindow &win) { | |||
241 | win.setWorkspace(desktop); | 241 | win.setWorkspace(desktop); |
242 | 242 | ||
243 | XFree(data); | 243 | XFree(data); |
244 | } | 244 | } else |
245 | updateWorkspace(win); | ||
245 | 246 | ||
246 | } | 247 | } |
247 | 248 | ||
@@ -265,6 +266,10 @@ void Ewmh::updateFocusedWindow(BScreen &screen, Window win) { | |||
265 | (unsigned char *)&win, 1); | 266 | (unsigned char *)&win, 1); |
266 | } | 267 | } |
267 | 268 | ||
269 | void Ewmh::updateClientClose(WinClient &winclient){ | ||
270 | updateClientList(winclient.screen()); | ||
271 | } | ||
272 | |||
268 | void Ewmh::updateClientList(BScreen &screen) { | 273 | void Ewmh::updateClientList(BScreen &screen) { |
269 | size_t num=0; | 274 | size_t num=0; |
270 | 275 | ||
@@ -568,7 +573,8 @@ void Ewmh::updateHints(FluxboxWindow &win) { | |||
568 | } | 573 | } |
569 | 574 | ||
570 | void Ewmh::updateWorkspace(FluxboxWindow &win) { | 575 | void Ewmh::updateWorkspace(FluxboxWindow &win) { |
571 | long workspace = win.workspaceNumber(); | 576 | long workspace = win.isInitialized() ? win.workspaceNumber() : win.screen().currentWorkspaceID(); |
577 | |||
572 | if (win.isStuck()) | 578 | if (win.isStuck()) |
573 | workspace = 0xFFFFFFFF; // appear on all desktops/workspaces | 579 | workspace = 0xFFFFFFFF; // appear on all desktops/workspaces |
574 | 580 | ||
diff --git a/src/Ewmh.hh b/src/Ewmh.hh index b2b61b4..c2b49e9 100644 --- a/src/Ewmh.hh +++ b/src/Ewmh.hh | |||
@@ -57,8 +57,8 @@ public: | |||
57 | bool propertyNotify(WinClient &winclient, Atom the_property); | 57 | bool propertyNotify(WinClient &winclient, Atom the_property); |
58 | void updateFrameClose(FluxboxWindow &win); | 58 | void updateFrameClose(FluxboxWindow &win); |
59 | 59 | ||
60 | //ignore this one | 60 | void updateClientClose(WinClient &winclient); |
61 | void updateClientClose(WinClient &winclient) {} | 61 | |
62 | 62 | ||
63 | void setFullscreen(FluxboxWindow &win, bool value); | 63 | void setFullscreen(FluxboxWindow &win, bool value); |
64 | 64 | ||
diff --git a/src/Gnome.cc b/src/Gnome.cc index 9fd1a48..1691c9e 100644 --- a/src/Gnome.cc +++ b/src/Gnome.cc | |||
@@ -240,7 +240,7 @@ void Gnome::updateWorkspaceCount(BScreen &screen) { | |||
240 | } | 240 | } |
241 | 241 | ||
242 | void Gnome::updateWorkspace(FluxboxWindow &win) { | 242 | void Gnome::updateWorkspace(FluxboxWindow &win) { |
243 | long val = win.workspaceNumber(); | 243 | long val = win.isInitialized() ? win.workspaceNumber() : win.screen().currentWorkspaceID(); |
244 | if (win.isStuck()) { | 244 | if (win.isStuck()) { |
245 | val = -1; | 245 | val = -1; |
246 | } | 246 | } |