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.
This commit is contained in:
Thomas Lübking 2016-09-01 22:30:18 +02:00
parent 14e25f4a65
commit e99d940f40

View file

@ -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;