From e99d940f407d37f31ecda0f4878a161bfc479a46 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thomas=20L=C3=BCbking?= Date: Thu, 1 Sep 2016 22:30:18 +0200 Subject: 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. --- src/Window.cc | 6 ++++-- 1 file 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() { // if we're a transient then we should be on the same layer and workspace FluxboxWindow* twin = m_client->transientFor() ? m_client->transientFor()->fbwindow() : 0; if (twin && twin != this) { - layerItem().setLayer(twin->layerItem().getLayer()); - m_state.layernum = twin->layerNum(); + if (twin->layerNum() < ResourceLayer::DESKTOP) { // don't confine layer for desktops + layerItem().setLayer(twin->layerItem().getLayer()); + m_state.layernum = twin->layerNum(); + } m_workspace_number = twin->workspaceNumber(); const int x = twin->frame().x() + int(twin->frame().width() - frame().width())/2; const int y = twin->frame().y() + int(twin->frame().height() - frame().height())/2; -- cgit v0.11.2