diff options
Diffstat (limited to 'src/Ewmh.cc')
-rw-r--r-- | src/Ewmh.cc | 27 |
1 files changed, 23 insertions, 4 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 | ||