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 46530b7..23e11bf 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -424,8 +424,9 @@ void FluxboxWindow::init() {
424 /* Read state above here, apply state below here. */ 424 /* Read state above here, apply state below here. */
425 /**************************************************/ 425 /**************************************************/
426 426
427 // update transient infomation 427 if (m_client->transientFor() && m_client->transientFor()->fbwindow() &&
428 m_client->updateTransientInfo(); 428 m_client->transientFor()->fbwindow()->isStuck())
429 stick();
429 430
430 // adjust the window decorations based on transience and window sizes 431 // adjust the window decorations based on transience and window sizes
431 if (m_client->isTransient() && !screen().decorateTransient()) { 432 if (m_client->isTransient() && !screen().decorateTransient()) {
@@ -1831,6 +1832,19 @@ void FluxboxWindow::stick() {
1831 m_workspacesig.notify(); 1832 m_workspacesig.notify();
1832 } 1833 }
1833 1834
1835 ClientList::iterator client_it = clientList().begin();
1836 ClientList::iterator client_it_end = clientList().end();
1837 for (; client_it != client_it_end; ++client_it) {
1838
1839 WinClient::TransientList::const_iterator it = (*client_it)->transientList().begin();
1840 WinClient::TransientList::const_iterator it_end = (*client_it)->transientList().end();
1841 for (; it != it_end; ++it) {
1842 if ((*it)->fbwindow() && (*it)->fbwindow()->isStuck() != stuck)
1843 (*it)->fbwindow()->stick();
1844 }
1845
1846 }
1847
1834} 1848}
1835 1849
1836 1850
@@ -1939,16 +1953,24 @@ void FluxboxWindow::moveToLayer(int layernum, bool force) {
1939 layernum = win->layerItem().getLayerNum(); 1953 layernum = win->layerItem().getLayerNum();
1940 win->setLayerNum(layernum); 1954 win->setLayerNum(layernum);
1941 1955
1942 WinClient::TransientList::const_iterator it = client->transientList().begin(); 1956 // move all the transients, too
1943 WinClient::TransientList::const_iterator it_end = client->transientList().end(); 1957 ClientList::iterator client_it = win->clientList().begin();
1944 for (; it != it_end; ++it) { 1958 ClientList::iterator client_it_end = win->clientList().end();
1945 win = (*it)->fbwindow(); 1959 for (; client_it != client_it_end; ++client_it) {
1946 if (win && !win->isIconic()) { 1960
1947 screen().updateNetizenWindowRaise((*it)->window()); 1961 WinClient::TransientList::const_iterator it = (*client_it)->transientList().begin();
1948 win->layerItem().moveToLayer(layernum); 1962 WinClient::TransientList::const_iterator it_end = (*client_it)->transientList().end();
1949 win->setLayerNum(layernum); 1963 for (; it != it_end; ++it) {
1964 FluxboxWindow *fbwin = (*it)->fbwindow();
1965 if (fbwin && !fbwin->isIconic()) {
1966 screen().updateNetizenWindowRaise((*it)->window());
1967 fbwin->layerItem().moveToLayer(layernum);
1968 fbwin->setLayerNum(layernum);
1969 }
1950 } 1970 }
1971
1951 } 1972 }
1973
1952} 1974}
1953 1975
1954void FluxboxWindow::setFocusHidden(bool value) { 1976void FluxboxWindow::setFocusHidden(bool value) {