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)
This commit is contained in:
parent
eddedd50d1
commit
33e359a0df
3 changed files with 11 additions and 5 deletions
10
src/Ewmh.cc
10
src/Ewmh.cc
|
@ -241,7 +241,8 @@ void Ewmh::setupFrame(FluxboxWindow &win) {
|
||||||
win.setWorkspace(desktop);
|
win.setWorkspace(desktop);
|
||||||
|
|
||||||
XFree(data);
|
XFree(data);
|
||||||
}
|
} else
|
||||||
|
updateWorkspace(win);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -265,6 +266,10 @@ void Ewmh::updateFocusedWindow(BScreen &screen, Window win) {
|
||||||
(unsigned char *)&win, 1);
|
(unsigned char *)&win, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void Ewmh::updateClientClose(WinClient &winclient){
|
||||||
|
updateClientList(winclient.screen());
|
||||||
|
}
|
||||||
|
|
||||||
void Ewmh::updateClientList(BScreen &screen) {
|
void Ewmh::updateClientList(BScreen &screen) {
|
||||||
size_t num=0;
|
size_t num=0;
|
||||||
|
|
||||||
|
@ -568,7 +573,8 @@ void Ewmh::updateHints(FluxboxWindow &win) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Ewmh::updateWorkspace(FluxboxWindow &win) {
|
void Ewmh::updateWorkspace(FluxboxWindow &win) {
|
||||||
long workspace = win.workspaceNumber();
|
long workspace = win.isInitialized() ? win.workspaceNumber() : win.screen().currentWorkspaceID();
|
||||||
|
|
||||||
if (win.isStuck())
|
if (win.isStuck())
|
||||||
workspace = 0xFFFFFFFF; // appear on all desktops/workspaces
|
workspace = 0xFFFFFFFF; // appear on all desktops/workspaces
|
||||||
|
|
||||||
|
|
|
@ -57,8 +57,8 @@ public:
|
||||||
bool propertyNotify(WinClient &winclient, Atom the_property);
|
bool propertyNotify(WinClient &winclient, Atom the_property);
|
||||||
void updateFrameClose(FluxboxWindow &win);
|
void updateFrameClose(FluxboxWindow &win);
|
||||||
|
|
||||||
//ignore this one
|
void updateClientClose(WinClient &winclient);
|
||||||
void updateClientClose(WinClient &winclient) {}
|
|
||||||
|
|
||||||
void setFullscreen(FluxboxWindow &win, bool value);
|
void setFullscreen(FluxboxWindow &win, bool value);
|
||||||
|
|
||||||
|
|
|
@ -240,7 +240,7 @@ void Gnome::updateWorkspaceCount(BScreen &screen) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void Gnome::updateWorkspace(FluxboxWindow &win) {
|
void Gnome::updateWorkspace(FluxboxWindow &win) {
|
||||||
long val = win.workspaceNumber();
|
long val = win.isInitialized() ? win.workspaceNumber() : win.screen().currentWorkspaceID();
|
||||||
if (win.isStuck()) {
|
if (win.isStuck()) {
|
||||||
val = -1;
|
val = -1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue