aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Lübking <thomas.luebking@gmail.com>2016-09-01 20:30:18 (GMT)
committerThomas Lübking <thomas.luebking@gmail.com>2016-09-01 20:51:45 (GMT)
commite99d940f407d37f31ecda0f4878a161bfc479a46 (patch)
tree6d965a87e61a1a9dff055438a7a76a17285188fe
parent14e25f4a658f19389921fcfc6d7e355041146af1 (diff)
downloadfluxbox-e99d940f407d37f31ecda0f4878a161bfc479a46.zip
fluxbox-e99d940f407d37f31ecda0f4878a161bfc479a46.tar.bz2
do not confine transients to desktop layer
Originally patch #170 by gregor_b Desktop stype windows will typically have their config dialogs as transients. If those are confined to the desktop layer, they're stashed behind everything else, so we don't force them there. If the transient already is in the desktop layer otherwise it's a(nother) desktop, not a dialog, and belongs to that layer, there's no need to artificially raise it. It's entirely sufficient to leave these windows untouched.
-rw-r--r--src/Window.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/Window.cc b/src/Window.cc
index 578736a..5377965 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -548,8 +548,10 @@ void FluxboxWindow::init() {
548 // if we're a transient then we should be on the same layer and workspace 548 // if we're a transient then we should be on the same layer and workspace
549 FluxboxWindow* twin = m_client->transientFor() ? m_client->transientFor()->fbwindow() : 0; 549 FluxboxWindow* twin = m_client->transientFor() ? m_client->transientFor()->fbwindow() : 0;
550 if (twin && twin != this) { 550 if (twin && twin != this) {
551 layerItem().setLayer(twin->layerItem().getLayer()); 551 if (twin->layerNum() < ResourceLayer::DESKTOP) { // don't confine layer for desktops
552 m_state.layernum = twin->layerNum(); 552 layerItem().setLayer(twin->layerItem().getLayer());
553 m_state.layernum = twin->layerNum();
554 }
553 m_workspace_number = twin->workspaceNumber(); 555 m_workspace_number = twin->workspaceNumber();
554 const int x = twin->frame().x() + int(twin->frame().width() - frame().width())/2; 556 const int x = twin->frame().x() + int(twin->frame().width() - frame().width())/2;
555 const int y = twin->frame().y() + int(twin->frame().height() - frame().height())/2; 557 const int y = twin->frame().y() + int(twin->frame().height() - frame().height())/2;