diff --git a/src/Window.cc b/src/Window.cc index 7c3e36c1..1053ee35 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -475,21 +475,16 @@ void FluxboxWindow::init() { if (m_workspace_number >= screen().numberOfWorkspaces()) m_workspace_number = screen().currentWorkspaceID(); - // if we're a transient then we should be on the same layer as our parent + // if we're a transient then we should be on the same layer and workspace if (m_client->isTransient() && m_client->transientFor()->fbwindow() && - m_client->transientFor()->fbwindow() != this) + m_client->transientFor()->fbwindow() != this) { layerItem().setLayer(m_client->transientFor()->fbwindow()->layerItem().getLayer()); - else // if no parent then set default layer - moveToLayer(m_state.layernum, m_state.layernum != ::Layer::NORMAL); - - // transients should be on the same workspace as parent - if (m_client->isTransient() && - m_client->transientFor()->fbwindow()) { + m_state.layernum = m_client->transientFor()->fbwindow()->layerNum(); m_workspace_number = m_client->transientFor()->fbwindow()->workspaceNumber(); - } - + } else // if no parent then set default layer + moveToLayer(m_state.layernum, m_state.layernum != ::Layer::NORMAL); #ifdef DEBUG cerr<<"FluxboxWindow::init("<