diff options
| author | Dana Jansens <danakj@orodu.net> | 2002-07-20 18:44:39 +0000 |
|---|---|---|
| committer | Dana Jansens <danakj@orodu.net> | 2002-07-20 18:44:39 +0000 |
| commit | 4aeca296e895bfe74d59d4732e740c2d49c10080 (patch) | |
| tree | 05265db6f0408c67c6821ce3286b5649bde22551 /util/epist/window.cc | |
| parent | f7a41999bfa20750f192d7fa5447bb133451db76 (diff) | |
implement toggleMaximize(Vert|Horz|Full)
Diffstat (limited to 'util/epist/window.cc')
| -rw-r--r-- | util/epist/window.cc | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/util/epist/window.cc b/util/epist/window.cc index fd951aa1..aca644c3 100644 --- a/util/epist/window.cc +++ b/util/epist/window.cc @@ -289,3 +289,69 @@ void XWindow::move(int x, int y) const { findFramePosition(fx, fy); XMoveWindow(_epist->getXDisplay(), _window, fx + x, fy + y); } + + +void XWindow::toggleMaximize(Max max) const { + switch (max) { + case Max_Full: + _xatom-> + sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state, + _window, (_max_vert == _max_horz ? 2 : 1), + _xatom->getAtom(XAtom::net_wm_state_maximized_horz), + _xatom->getAtom(XAtom::net_wm_state_maximized_vert)); + break; + + case Max_Horz: + _xatom-> + sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state, + _window, 2, + _xatom->getAtom(XAtom::net_wm_state_maximized_horz)); + break; + + case Max_Vert: + _xatom-> + sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state, + _window, 2, + _xatom->getAtom(XAtom::net_wm_state_maximized_vert)); + break; + + case Max_None: + assert(false); // you should not do this. it is pointless and probly a bug + break; + } +} + + +void XWindow::maximize(Max max) const { + switch (max) { + case Max_None: + _xatom-> + sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state, + _window, 0, + _xatom->getAtom(XAtom::net_wm_state_maximized_horz), + _xatom->getAtom(XAtom::net_wm_state_maximized_vert)); + break; + + case Max_Full: + _xatom-> + sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state, + _window, 1, + _xatom->getAtom(XAtom::net_wm_state_maximized_horz), + _xatom->getAtom(XAtom::net_wm_state_maximized_vert)); + break; + + case Max_Horz: + _xatom-> + sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state, + _window, 1, + _xatom->getAtom(XAtom::net_wm_state_maximized_horz)); + break; + + case Max_Vert: + _xatom-> + sendClientMessage(_screen->rootWindow(), XAtom::net_wm_state, + _window, 1, + _xatom->getAtom(XAtom::net_wm_state_maximized_vert)); + break; + } +} |
