From 33e359a0dfd4b6e6640b452f99d199377fee396d Mon Sep 17 00:00:00 2001 From: mathias Date: Sat, 14 May 2005 01:55:31 +0000 Subject: 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) --- src/Ewmh.cc | 10 ++++++++-- src/Ewmh.hh | 4 ++-- 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) { win.setWorkspace(desktop); XFree(data); - } + } else + updateWorkspace(win); } @@ -265,6 +266,10 @@ void Ewmh::updateFocusedWindow(BScreen &screen, Window win) { (unsigned char *)&win, 1); } +void Ewmh::updateClientClose(WinClient &winclient){ + updateClientList(winclient.screen()); +} + void Ewmh::updateClientList(BScreen &screen) { size_t num=0; @@ -568,7 +573,8 @@ void Ewmh::updateHints(FluxboxWindow &win) { } void Ewmh::updateWorkspace(FluxboxWindow &win) { - long workspace = win.workspaceNumber(); + long workspace = win.isInitialized() ? win.workspaceNumber() : win.screen().currentWorkspaceID(); + if (win.isStuck()) workspace = 0xFFFFFFFF; // appear on all desktops/workspaces 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: bool propertyNotify(WinClient &winclient, Atom the_property); void updateFrameClose(FluxboxWindow &win); - //ignore this one - void updateClientClose(WinClient &winclient) {} + void updateClientClose(WinClient &winclient); + void setFullscreen(FluxboxWindow &win, bool value); 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) { } void Gnome::updateWorkspace(FluxboxWindow &win) { - long val = win.workspaceNumber(); + long val = win.isInitialized() ? win.workspaceNumber() : win.screen().currentWorkspaceID(); if (win.isStuck()) { val = -1; } -- cgit v0.11.2