diff options
author | rathnor <rathnor> | 2003-02-09 14:11:14 (GMT) |
---|---|---|
committer | rathnor <rathnor> | 2003-02-09 14:11:14 (GMT) |
commit | e3b99d4e485591df52b2398fce9adbcece2b9917 (patch) | |
tree | 44c14c5160e07e1af0671e141ae99cc1f2e66609 /src/Screen.cc | |
parent | 1a04cf1ce2649400d41c43024bd163a059cc426d (diff) | |
download | fluxbox_pavel-e3b99d4e485591df52b2398fce9adbcece2b9917.zip fluxbox_pavel-e3b99d4e485591df52b2398fce9adbcece2b9917.tar.bz2 |
fixing up of layer code
Diffstat (limited to 'src/Screen.cc')
-rw-r--r-- | src/Screen.cc | 156 |
1 files changed, 5 insertions, 151 deletions
diff --git a/src/Screen.cc b/src/Screen.cc index 39cfa7b..33fca08 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Screen.cc,v 1.102 2003/02/03 13:52:31 fluxgen Exp $ | 25 | // $Id: Screen.cc,v 1.103 2003/02/09 14:11:12 rathnor Exp $ |
26 | 26 | ||
27 | 27 | ||
28 | #include "Screen.hh" | 28 | #include "Screen.hh" |
@@ -1087,7 +1087,7 @@ void BScreen::updateNetizenConfigNotify(XEvent *e) { | |||
1087 | FluxboxWindow *BScreen::createWindow(Window client) { | 1087 | FluxboxWindow *BScreen::createWindow(Window client) { |
1088 | FluxboxWindow *win = new FluxboxWindow(client, this, getScreenNumber(), *getImageControl(), | 1088 | FluxboxWindow *win = new FluxboxWindow(client, this, getScreenNumber(), *getImageControl(), |
1089 | winFrameTheme(), *menuTheme(), | 1089 | winFrameTheme(), *menuTheme(), |
1090 | *layerManager().getLayer(0)); | 1090 | *layerManager().getLayer(Fluxbox::instance()->getNormalLayer())); |
1091 | 1091 | ||
1092 | #ifdef SLIT | 1092 | #ifdef SLIT |
1093 | if (win->initialState() == WithdrawnState) | 1093 | if (win->initialState() == WithdrawnState) |
@@ -1326,7 +1326,7 @@ void BScreen::nextFocus(int opts) { | |||
1326 | } while (*it != focused); | 1326 | } while (*it != focused); |
1327 | 1327 | ||
1328 | if (*it != focused && it != wins.end()) | 1328 | if (*it != focused && it != wins.end()) |
1329 | raiseWindow(*it); | 1329 | (*it)->raise(); |
1330 | 1330 | ||
1331 | } | 1331 | } |
1332 | 1332 | ||
@@ -1369,7 +1369,7 @@ void BScreen::prevFocus(int opts) { | |||
1369 | } while (*it != focused); | 1369 | } while (*it != focused); |
1370 | 1370 | ||
1371 | if (*it != focused && it != wins.end()) | 1371 | if (*it != focused && it != wins.end()) |
1372 | raiseWindow(*it); | 1372 | (*it)->raise(); |
1373 | 1373 | ||
1374 | } | 1374 | } |
1375 | } | 1375 | } |
@@ -1390,7 +1390,7 @@ void BScreen::raiseFocus() { | |||
1390 | } | 1390 | } |
1391 | 1391 | ||
1392 | if ((getCurrentWorkspace()->getCount() > 1) && have_focused) | 1392 | if ((getCurrentWorkspace()->getCount() > 1) && have_focused) |
1393 | raiseWindow(fb->getFocusedWindow()); | 1393 | fb->getFocusedWindow()->raise(); |
1394 | } | 1394 | } |
1395 | 1395 | ||
1396 | void BScreen::initMenu() { | 1396 | void BScreen::initMenu() { |
@@ -1938,157 +1938,11 @@ void BScreen::hideGeometry() { | |||
1938 | } | 1938 | } |
1939 | } | 1939 | } |
1940 | 1940 | ||
1941 | void BScreen::raise(FbTk::XLayerItem &item) { | ||
1942 | item.raise(); | ||
1943 | } | ||
1944 | |||
1945 | void BScreen::lower(FbTk::XLayerItem &item) { | ||
1946 | item.lower(); | ||
1947 | } | ||
1948 | |||
1949 | void BScreen::setLayer(FbTk::XLayerItem &item, int layernum) { | 1941 | void BScreen::setLayer(FbTk::XLayerItem &item, int layernum) { |
1950 | m_layermanager.moveToLayer(item, layernum); | 1942 | m_layermanager.moveToLayer(item, layernum); |
1951 | } | 1943 | } |
1952 | 1944 | ||
1953 | 1945 | ||
1954 | void BScreen::raiseWindow(FluxboxWindow *w) { | ||
1955 | if (w == 0) | ||
1956 | return; | ||
1957 | |||
1958 | FluxboxWindow *win = w; | ||
1959 | |||
1960 | while (win->getTransientFor()) { | ||
1961 | win = win->getTransientFor(); | ||
1962 | assert(win != win->getTransientFor()); | ||
1963 | } | ||
1964 | |||
1965 | if (win == 0) | ||
1966 | win = w; | ||
1967 | |||
1968 | if (!win->isIconic()) { | ||
1969 | updateNetizenWindowRaise(win->getClientWindow()); | ||
1970 | win->getLayerItem().raise(); | ||
1971 | } | ||
1972 | |||
1973 | std::list<FluxboxWindow *>::const_iterator it = win->getTransients().begin(); | ||
1974 | std::list<FluxboxWindow *>::const_iterator it_end = win->getTransients().end(); | ||
1975 | for (; it != it_end; ++it) { | ||
1976 | if (!(*it)->isIconic()) { | ||
1977 | updateNetizenWindowRaise((*it)->getClientWindow()); | ||
1978 | (*it)->getLayerItem().raise(); | ||
1979 | } | ||
1980 | } | ||
1981 | } | ||
1982 | |||
1983 | void BScreen::lowerWindow(FluxboxWindow *w) { | ||
1984 | FluxboxWindow *win = (FluxboxWindow *) 0, *bottom = w; | ||
1985 | |||
1986 | while (bottom->getTransientFor()) { | ||
1987 | bottom = bottom->getTransientFor(); | ||
1988 | assert(bottom != bottom->getTransientFor()); | ||
1989 | } | ||
1990 | |||
1991 | win = bottom; | ||
1992 | |||
1993 | if (!win->isIconic()) { | ||
1994 | updateNetizenWindowLower(win->getClientWindow()); | ||
1995 | win->getLayerItem().lower(); | ||
1996 | } | ||
1997 | std::list<FluxboxWindow *>::const_iterator it = win->getTransients().begin(); | ||
1998 | std::list<FluxboxWindow *>::const_iterator it_end = win->getTransients().end(); | ||
1999 | for (; it != it_end; ++it) { | ||
2000 | if (!(*it)->isIconic()) { | ||
2001 | updateNetizenWindowLower((*it)->getClientWindow()); | ||
2002 | (*it)->getLayerItem().lower(); | ||
2003 | } | ||
2004 | } | ||
2005 | |||
2006 | } | ||
2007 | |||
2008 | void BScreen::raiseWindowLayer(FluxboxWindow *w) { | ||
2009 | FluxboxWindow *win = w; | ||
2010 | |||
2011 | while (win->getTransientFor()) { | ||
2012 | win = win->getTransientFor(); | ||
2013 | assert(win != win->getTransientFor()); | ||
2014 | } | ||
2015 | |||
2016 | if (!win->isIconic()) { | ||
2017 | updateNetizenWindowRaise(win->getClientWindow()); | ||
2018 | win->getLayerItem().raise(); | ||
2019 | win->setLayerNum(win->getLayerNum()-1); | ||
2020 | } | ||
2021 | |||
2022 | std::list<FluxboxWindow *>::const_iterator it = win->getTransients().begin(); | ||
2023 | std::list<FluxboxWindow *>::const_iterator it_end = win->getTransients().end(); | ||
2024 | for (; it != it_end; ++it) { | ||
2025 | if (!(*it)->isIconic()) { | ||
2026 | updateNetizenWindowRaise((*it)->getClientWindow()); | ||
2027 | (*it)->getLayerItem().raise(); | ||
2028 | (*it)->setLayerNum((*it)->getLayerNum()-1); | ||
2029 | } | ||
2030 | } | ||
2031 | } | ||
2032 | |||
2033 | void BScreen::lowerWindowLayer(FluxboxWindow *w) { | ||
2034 | FluxboxWindow *win = (FluxboxWindow *) 0, *bottom = w; | ||
2035 | |||
2036 | while (bottom->getTransientFor()) { | ||
2037 | bottom = bottom->getTransientFor(); | ||
2038 | assert(bottom != bottom->getTransientFor()); | ||
2039 | } | ||
2040 | |||
2041 | win = bottom; | ||
2042 | |||
2043 | if (!win->isIconic()) { | ||
2044 | updateNetizenWindowLower(win->getClientWindow()); | ||
2045 | win->getLayerItem().lower(); | ||
2046 | win->setLayerNum(win->getLayerNum()+1); | ||
2047 | } | ||
2048 | std::list<FluxboxWindow *>::const_iterator it = win->getTransients().begin(); | ||
2049 | std::list<FluxboxWindow *>::const_iterator it_end = win->getTransients().end(); | ||
2050 | for (; it != it_end; ++it) { | ||
2051 | if (!(*it)->isIconic()) { | ||
2052 | updateNetizenWindowLower((*it)->getClientWindow()); | ||
2053 | (*it)->getLayerItem().lower(); | ||
2054 | (*it)->setLayerNum((*it)->getLayerNum()+1); | ||
2055 | } | ||
2056 | } | ||
2057 | |||
2058 | } | ||
2059 | |||
2060 | void BScreen::moveWindowToLayer(FluxboxWindow *win, int layernum) { | ||
2061 | Fluxbox * fluxbox = Fluxbox::instance(); | ||
2062 | |||
2063 | // don't let it set its layer into menu area | ||
2064 | if (layernum <= fluxbox->getMenuLayer()) { | ||
2065 | layernum = fluxbox->getMenuLayer() + 1; | ||
2066 | } | ||
2067 | |||
2068 | while (win->getTransientFor()) { | ||
2069 | win = win->getTransientFor(); | ||
2070 | assert(win != win->getTransientFor()); | ||
2071 | } | ||
2072 | |||
2073 | if (!win->isIconic()) { | ||
2074 | updateNetizenWindowRaise(win->getClientWindow()); | ||
2075 | //!! TODO | ||
2076 | //anager->moveToLayer(*win->getLayerItem(),layernum); | ||
2077 | win->setLayerNum(layernum); | ||
2078 | } | ||
2079 | std::list<FluxboxWindow *>::const_iterator it = win->getTransients().begin(); | ||
2080 | std::list<FluxboxWindow *>::const_iterator it_end = win->getTransients().end(); | ||
2081 | for (; it != it_end; ++it) { | ||
2082 | if (!(*it)->isIconic()) { | ||
2083 | updateNetizenWindowRaise((*it)->getClientWindow()); | ||
2084 | //!! TODO | ||
2085 | //m_layermanager->moveToLayer(*(*it)->getLayerItem(), layernum); | ||
2086 | (*it)->setLayerNum(layernum); | ||
2087 | } | ||
2088 | } | ||
2089 | } | ||
2090 | |||
2091 | |||
2092 | /** | 1946 | /** |
2093 | Goes to the workspace "right" of the current | 1947 | Goes to the workspace "right" of the current |
2094 | */ | 1948 | */ |