diff options
author | Thomas Lübking <thomas.luebking@gmail.com> | 2016-09-01 20:30:18 (GMT) |
---|---|---|
committer | Thomas Lübking <thomas.luebking@gmail.com> | 2016-09-01 20:51:45 (GMT) |
commit | e99d940f407d37f31ecda0f4878a161bfc479a46 (patch) | |
tree | 6d965a87e61a1a9dff055438a7a76a17285188fe | |
parent | 14e25f4a658f19389921fcfc6d7e355041146af1 (diff) | |
download | fluxbox-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.cc | 6 |
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; |