aboutsummaryrefslogtreecommitdiff
path: root/src/Window.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/Window.cc')
-rw-r--r--src/Window.cc42
1 files changed, 32 insertions, 10 deletions
diff --git a/src/Window.cc b/src/Window.cc
index b50ee38..44fd4c9 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -432,8 +432,9 @@ void FluxboxWindow::init() {
432 /* Read state above here, apply state below here. */ 432 /* Read state above here, apply state below here. */
433 /**************************************************/ 433 /**************************************************/
434 434
435 // update transient infomation 435 if (m_client->transientFor() && m_client->transientFor()->fbwindow() &&
436 m_client->updateTransientInfo(); 436 m_client->transientFor()->fbwindow()->isStuck())
437 stick();
437 438
438 // adjust the window decorations based on transience and window sizes 439 // adjust the window decorations based on transience and window sizes
439 if (m_client->isTransient() && !screen().decorateTransient()) { 440 if (m_client->isTransient() && !screen().decorateTransient()) {
@@ -1855,6 +1856,19 @@ void FluxboxWindow::stick() {
1855 m_workspacesig.notify(); 1856 m_workspacesig.notify();
1856 } 1857 }
1857 1858
1859 ClientList::iterator client_it = clientList().begin();
1860 ClientList::iterator client_it_end = clientList().end();
1861 for (; client_it != client_it_end; ++client_it) {
1862
1863 WinClient::TransientList::const_iterator it = (*client_it)->transientList().begin();
1864 WinClient::TransientList::const_iterator it_end = (*client_it)->transientList().end();
1865 for (; it != it_end; ++it) {
1866 if ((*it)->fbwindow() && (*it)->fbwindow()->isStuck() != stuck)
1867 (*it)->fbwindow()->stick();
1868 }
1869
1870 }
1871
1858} 1872}
1859 1873
1860 1874
@@ -1955,16 +1969,24 @@ void FluxboxWindow::moveToLayer(int layernum, bool force) {
1955 layernum = win->layerItem().getLayerNum(); 1969 layernum = win->layerItem().getLayerNum();
1956 win->setLayerNum(layernum); 1970 win->setLayerNum(layernum);
1957 1971
1958 WinClient::TransientList::const_iterator it = client->transientList().begin(); 1972 // move all the transients, too
1959 WinClient::TransientList::const_iterator it_end = client->transientList().end(); 1973 ClientList::iterator client_it = win->clientList().begin();
1960 for (; it != it_end; ++it) { 1974 ClientList::iterator client_it_end = win->clientList().end();
1961 win = (*it)->fbwindow(); 1975 for (; client_it != client_it_end; ++client_it) {
1962 if (win && !win->isIconic()) { 1976
1963 screen().updateNetizenWindowRaise((*it)->window()); 1977 WinClient::TransientList::const_iterator it = (*client_it)->transientList().begin();
1964 win->layerItem().moveToLayer(layernum); 1978 WinClient::TransientList::const_iterator it_end = (*client_it)->transientList().end();
1965 win->setLayerNum(layernum); 1979 for (; it != it_end; ++it) {
1980 FluxboxWindow *fbwin = (*it)->fbwindow();
1981 if (fbwin && !fbwin->isIconic()) {
1982 screen().updateNetizenWindowRaise((*it)->window());
1983 fbwin->layerItem().moveToLayer(layernum);
1984 fbwin->setLayerNum(layernum);
1985 }
1966 } 1986 }
1987
1967 } 1988 }
1989
1968} 1990}
1969 1991
1970void FluxboxWindow::setFocusHidden(bool value) { 1992void FluxboxWindow::setFocusHidden(bool value) {