aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormathias <mathias>2005-05-14 01:55:31 (GMT)
committermathias <mathias>2005-05-14 01:55:31 (GMT)
commit33e359a0dfd4b6e6640b452f99d199377fee396d (patch)
tree2d9da927957a105533d5fd15192b0a380c6bcc44
parenteddedd50d1504ffe6e351b055b1f356dd91e385c (diff)
downloadfluxbox-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.cc10
-rw-r--r--src/Ewmh.hh4
-rw-r--r--src/Gnome.cc2
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
269void Ewmh::updateClientClose(WinClient &winclient){
270 updateClientList(winclient.screen());
271}
272
268void Ewmh::updateClientList(BScreen &screen) { 273void 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
570void Ewmh::updateWorkspace(FluxboxWindow &win) { 575void 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
242void Gnome::updateWorkspace(FluxboxWindow &win) { 242void 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 }