diff options
author | fluxgen <fluxgen> | 2003-08-27 21:06:04 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2003-08-27 21:06:04 (GMT) |
commit | 9962557cc612e22cb72b6971b8f8a7ae214fbca6 (patch) | |
tree | 8f0cd8d45e2bc82b6afa7fb01bad5a339de877bf | |
parent | 177c7930401dbcb1027241852ef472ae0aa76705 (diff) | |
download | fluxbox_paul-9962557cc612e22cb72b6971b8f8a7ae214fbca6.zip fluxbox_paul-9962557cc612e22cb72b6971b8f8a7ae214fbca6.tar.bz2 |
added support for _NET_WM_STATE_MAXIMIZE_VERT and _NET_WM_STATE_MAXIMIZE_HORZ, Thanks stephan wezel
-rw-r--r-- | src/Ewmh.cc | 27 | ||||
-rw-r--r-- | src/Ewmh.hh | 3 |
2 files changed, 25 insertions, 5 deletions
diff --git a/src/Ewmh.cc b/src/Ewmh.cc index 31db7c5..6b38e86 100644 --- a/src/Ewmh.cc +++ b/src/Ewmh.cc | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | // $Id: Ewmh.cc,v 1.31 2003/08/11 14:51:15 fluxgen Exp $ | 22 | // $Id: Ewmh.cc,v 1.32 2003/08/27 21:06:04 fluxgen Exp $ |
23 | 23 | ||
24 | #include "Ewmh.hh" | 24 | #include "Ewmh.hh" |
25 | 25 | ||
@@ -74,6 +74,8 @@ void Ewmh::initForScreen(BScreen &screen) { | |||
74 | // states that we support: | 74 | // states that we support: |
75 | m_net_wm_state_sticky, | 75 | m_net_wm_state_sticky, |
76 | m_net_wm_state_shaded, | 76 | m_net_wm_state_shaded, |
77 | m_net_wm_state_maximized_horz, | ||
78 | m_net_wm_state_maximized_vert, | ||
77 | 79 | ||
78 | m_net_wm_desktop, | 80 | m_net_wm_desktop, |
79 | 81 | ||
@@ -407,7 +409,9 @@ void Ewmh::createAtoms() { | |||
407 | m_net_wm_state = XInternAtom(disp, "_NET_WM_STATE", False); | 409 | m_net_wm_state = XInternAtom(disp, "_NET_WM_STATE", False); |
408 | m_net_wm_state_sticky = XInternAtom(disp, "_NET_WM_STATE_STICKY", False); | 410 | m_net_wm_state_sticky = XInternAtom(disp, "_NET_WM_STATE_STICKY", False); |
409 | m_net_wm_state_shaded = XInternAtom(disp, "_NET_WM_STATE_SHADED", False); | 411 | m_net_wm_state_shaded = XInternAtom(disp, "_NET_WM_STATE_SHADED", False); |
410 | 412 | m_net_wm_state_maximized_horz = XInternAtom(disp, "_NET_WM_STATE_MAXIMIZED_HORZ", False); | |
413 | m_net_wm_state_maximized_vert = XInternAtom(disp, "_NET_WM_STATE_MAXIMIZED_VERT", False); | ||
414 | |||
411 | m_net_wm_strut = XInternAtom(disp, "_NET_WM_STRUT", False); | 415 | m_net_wm_strut = XInternAtom(disp, "_NET_WM_STRUT", False); |
412 | m_net_wm_icon_geometry = XInternAtom(disp, "_NET_WM_ICON_GEOMETRY", False); | 416 | m_net_wm_icon_geometry = XInternAtom(disp, "_NET_WM_ICON_GEOMETRY", False); |
413 | m_net_wm_icon = XInternAtom(disp, "_NET_WM_ICON", False); | 417 | m_net_wm_icon = XInternAtom(disp, "_NET_WM_ICON", False); |
@@ -428,7 +432,16 @@ void Ewmh::setState(FluxboxWindow &win, Atom state, bool value) const { | |||
428 | if ((value && !win.isShaded()) || | 432 | if ((value && !win.isShaded()) || |
429 | (!value && win.isShaded())) | 433 | (!value && win.isShaded())) |
430 | win.shade(); | 434 | win.shade(); |
431 | } | 435 | } else if (state == m_net_wm_state_maximized_horz ) { // maximized Horizontal |
436 | if ((value && !win.isMaximized()) || | ||
437 | (!value && win.isMaximized())) | ||
438 | win.maximizeHorizontal(); | ||
439 | } else if (state == m_net_wm_state_maximized_vert) { // maximized Vertical | ||
440 | if ((value && !win.isMaximized()) || | ||
441 | (!value && win.isMaximized())) | ||
442 | win.maximizeVertical(); | ||
443 | } | ||
444 | |||
432 | 445 | ||
433 | } | 446 | } |
434 | 447 | ||
@@ -436,8 +449,14 @@ void Ewmh::setState(FluxboxWindow &win, Atom state, bool value) const { | |||
436 | void Ewmh::toggleState(FluxboxWindow &win, Atom state) const { | 449 | void Ewmh::toggleState(FluxboxWindow &win, Atom state) const { |
437 | if (state == m_net_wm_state_sticky) { | 450 | if (state == m_net_wm_state_sticky) { |
438 | win.stick(); | 451 | win.stick(); |
439 | } else if (state == m_net_wm_state_shaded) | 452 | } else if (state == m_net_wm_state_shaded){ |
440 | win.shade(); | 453 | win.shade(); |
454 | } else if (state == m_net_wm_state_maximized_horz ) { // maximized Horizontal | ||
455 | win.maximizeHorizontal(); | ||
456 | } else if (state == m_net_wm_state_maximized_vert) { // maximized Vertical | ||
457 | win.maximizeVertical(); | ||
458 | } | ||
459 | |||
441 | } | 460 | } |
442 | 461 | ||
443 | 462 | ||
diff --git a/src/Ewmh.hh b/src/Ewmh.hh index ffc660f..08de6cf 100644 --- a/src/Ewmh.hh +++ b/src/Ewmh.hh | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | // $Id: Ewmh.hh,v 1.10 2003/07/28 15:06:33 rathnor Exp $ | 22 | // $Id: Ewmh.hh,v 1.11 2003/08/27 21:06:04 fluxgen Exp $ |
23 | 23 | ||
24 | #include "AtomHandler.hh" | 24 | #include "AtomHandler.hh" |
25 | 25 | ||
@@ -75,6 +75,7 @@ private: | |||
75 | // application window properties | 75 | // application window properties |
76 | Atom m_net_properties, m_net_wm_name, m_net_wm_desktop, m_net_wm_window_type, | 76 | Atom m_net_properties, m_net_wm_name, m_net_wm_desktop, m_net_wm_window_type, |
77 | m_net_wm_state, m_net_wm_state_sticky, m_net_wm_state_shaded, | 77 | m_net_wm_state, m_net_wm_state_sticky, m_net_wm_state_shaded, |
78 | m_net_wm_state_maximized_horz, m_net_wm_state_maximized_vert, | ||
78 | m_net_wm_strut, m_net_wm_icon_geometry, m_net_wm_icon, m_net_wm_pid, | 79 | m_net_wm_strut, m_net_wm_icon_geometry, m_net_wm_icon, m_net_wm_pid, |
79 | m_net_wm_handled_icons; | 80 | m_net_wm_handled_icons; |
80 | 81 | ||