all repos — fluxbox @ 538e33fedb8ea0730b17c6f92e9f3e4705343ca6

custom fork of the fluxbox windowmanager

some minor changes
markt markt
commit

538e33fedb8ea0730b17c6f92e9f3e4705343ca6

parent

a9103a89cbcfc553617888fd16df4349e1097d77

4 files changed, 17 insertions(+), 16 deletions(-)

jump to
M ChangeLogChangeLog

@@ -24,7 +24,7 @@ (including gaim/pidgin crash-on-restart)

sf.net #1524098, #1633718 (and older?) src/SystemTray.hh/cc src/FbTk/FbWindow.hh/cc *07/07/31: - * Change _NET_WM_WINDOW_TYPE_MENU to use TINY decoration type (Mark) + * Change _NET_WM_WINDOW_TYPE_MENU to use TOOL decoration type (Mark) Ewmh.cc *07/07/24: * Don't allow ToggleDecor with fullscreen windows, and make it show
M src/Ewmh.ccsrc/Ewmh.cc

@@ -318,7 +318,7 @@ * (i.e. toolbars and menus "torn off" from the main

* application). Windows of this type may set the * WM_TRANSIENT_FOR hint indicating the main application window. */ - win.setDecoration(FluxboxWindow::DECOR_TINY); + win.setDecoration(FluxboxWindow::DECOR_TOOL); win.setIconHidden(true); win.moveToLayer(Layer::ABOVE_DOCK); } else if (atoms[l] == m_net_wm_window_type_toolbar) {
M src/FbTk/XLayer.ccsrc/FbTk/XLayer.cc

@@ -53,8 +53,6 @@

// each LayerItem can contain several windows iterator it = itemList().begin(); iterator it_end = itemList().end(); - it = itemList().begin(); - it_end = itemList().end(); Window *winlist = new Window[num_windows]; size_t j=0;
M src/Window.ccsrc/Window.cc

@@ -138,18 +138,18 @@ void raiseFluxboxWindow(FluxboxWindow &win) {

if (win.oplock) return; - win.oplock = true; + if (win.isIconic()) + return; + win.oplock = true; // we need to lock actual restacking so that raising above active transient // won't do anything nasty if (!win.winClient().transientList().empty()) win.screen().layerManager().lock(); - if (!win.isIconic()) { - win.screen().updateNetizenWindowRaise(win.clientWindow()); - win.layerItem().raise(); - } + win.screen().updateNetizenWindowRaise(win.clientWindow()); + win.layerItem().raise(); // for each transient do raise

@@ -174,6 +174,9 @@ void lowerFluxboxWindow(FluxboxWindow &win) {

if (win.oplock) return; + if (win.isIconic()) + return; + win.oplock = true; // we need to lock actual restacking so that raising above active transient

@@ -181,18 +184,18 @@ // won't do anything nasty

if (!win.winClient().transientList().empty()) win.screen().layerManager().lock(); - if (!win.isIconic()) { - win.screen().updateNetizenWindowLower(win.clientWindow()); - win.layerItem().lower(); - } - - WinClient::TransientList::const_iterator it = win.winClient().transientList().begin(); - WinClient::TransientList::const_iterator it_end = win.winClient().transientList().end(); + // lower the windows from the top down, so they don't change stacking order + WinClient::TransientList::const_reverse_iterator it = win.winClient().transientList().rbegin(); + WinClient::TransientList::const_reverse_iterator it_end = win.winClient().transientList().rend(); for (; it != it_end; ++it) { if ((*it)->fbwindow() && !(*it)->fbwindow()->isIconic()) // TODO: should we also check if it is the active client? lowerFluxboxWindow(*(*it)->fbwindow()); } + + win.screen().updateNetizenWindowLower(win.clientWindow()); + win.layerItem().lower(); + win.oplock = false; if (!win.winClient().transientList().empty()) win.screen().layerManager().unlock();