remove _NET_WM_DESKTOP, _NET_WM_STATE, and Gnome hints on client close
This commit is contained in:
parent
135019abf9
commit
857a6d0a6a
4 changed files with 24 additions and 1 deletions
|
@ -1,5 +1,8 @@
|
|||
(Format: Year/Month/Day)
|
||||
Changes for 1.0.0:
|
||||
*07/07/08:
|
||||
* Clean up state and workspace window properties on client close (Mark)
|
||||
Ewmh.cc Gnome.cc/hh
|
||||
*07/07/07:
|
||||
* Don't overwrite changes to init file on reconfigure (Mark)
|
||||
Workspace.cc fluxbox.cc/hh
|
||||
|
|
|
@ -382,8 +382,17 @@ void Ewmh::updateFocusedWindow(BScreen &screen, Window win) {
|
|||
(unsigned char *)&win, 1);
|
||||
}
|
||||
|
||||
// EWMH says, regarding _NET_WM_STATE and _NET_WM_DESKTOP
|
||||
// The Window Manager should remove the property whenever a window is withdrawn
|
||||
// but it should leave the property in place when it is shutting down
|
||||
void Ewmh::updateClientClose(WinClient &winclient){
|
||||
updateClientList(winclient.screen());
|
||||
if (!winclient.screen().isShuttingdown()) {
|
||||
XDeleteProperty(FbTk::App::instance()->display(), winclient.window(),
|
||||
m_net_wm_state);
|
||||
XDeleteProperty(FbTk::App::instance()->display(), winclient.window(),
|
||||
m_net_wm_desktop);
|
||||
}
|
||||
}
|
||||
|
||||
void Ewmh::updateClientList(BScreen &screen) {
|
||||
|
|
11
src/Gnome.cc
11
src/Gnome.cc
|
@ -215,6 +215,17 @@ void Gnome::updateClientList(BScreen &screen) {
|
|||
delete[] wl;
|
||||
}
|
||||
|
||||
void Gnome::updateClientClose(WinClient &client) {
|
||||
if (client.screen().isShuttingdown()) {
|
||||
XDeleteProperty(FbTk::App::instance()->display(), client.window(),
|
||||
m_gnome_wm_win_workspace);
|
||||
XDeleteProperty(FbTk::App::instance()->display(), client.window(),
|
||||
m_gnome_wm_win_layer);
|
||||
XDeleteProperty(FbTk::App::instance()->display(), client.window(),
|
||||
m_gnome_wm_win_state);
|
||||
}
|
||||
}
|
||||
|
||||
void Gnome::updateWorkspaceNames(BScreen &screen) {
|
||||
|
||||
size_t number_of_desks = screen.getWorkspaceNames().size();
|
||||
|
|
|
@ -72,6 +72,7 @@ public:
|
|||
void updateWorkarea(BScreen &) { }
|
||||
void updateFocusedWindow(BScreen &, Window) { }
|
||||
void updateClientList(BScreen &screen);
|
||||
void updateClientClose(WinClient &winclient);
|
||||
void updateWorkspaceNames(BScreen &screen);
|
||||
void updateCurrentWorkspace(BScreen &screen);
|
||||
void updateWorkspaceCount(BScreen &screen);
|
||||
|
@ -85,7 +86,6 @@ public:
|
|||
|
||||
// ignore these ones
|
||||
void updateFrameClose(FluxboxWindow &win) {}
|
||||
void updateClientClose(WinClient &winclient) {}
|
||||
bool propertyNotify(WinClient &winclient, Atom the_property);
|
||||
|
||||
private:
|
||||
|
|
Loading…
Reference in a new issue