simplified logic of handleMaximize function
added maximize on top and bottom half and added maximize at 4 corners:
left top, right top, left bottom, right bottom
removed unneeded old_maximize flags
added to WPrefs options to configure new maximize modes
---
 WPrefs.app/KeyboardShortcuts.c |  12 ++
 src/actions.c                  | 252 +++++++++++++++++------------------------
 src/actions.h                  |   8 +-
 src/defaults.c                 |  12 ++
 src/event.c                    |  41 +++++++
 src/keybind.h                  |   8 +-
 src/window.h                   |   3 +-
 7 files changed, 179 insertions(+), 157 deletions(-)

diff --git a/WPrefs.app/KeyboardShortcuts.c b/WPrefs.app/KeyboardShortcuts.c
index 61a49a1..98bd6cc 100644
--- a/WPrefs.app/KeyboardShortcuts.c
+++ b/WPrefs.app/KeyboardShortcuts.c
@@ -78,6 +78,12 @@ static char *keyOptions[] = {
        "HMaximizeKey",
        "LHMaximizeKey",
        "RHMaximizeKey",
+       "THMaximizeKey",
+       "BHMaximizeKey",
+       "LTCMaximizeKey",
+       "RTCMaximizeKey",
+       "LBCMaximizeKey",
+       "RBCMaximizeKey",
        "MaximusKey",
        "RaiseKey",
        "LowerKey",
@@ -482,6 +488,12 @@ static void createPanel(Panel * p)
        WMAddListItem(panel->actLs, _("Maximize active window horizontally"));
        WMAddListItem(panel->actLs, _("Maximize active window left half"));
        WMAddListItem(panel->actLs, _("Maximize active window right half"));
+       WMAddListItem(panel->actLs, _("Maximize active window top half"));
+       WMAddListItem(panel->actLs, _("Maximize active window bottom half"));
+       WMAddListItem(panel->actLs, _("Maximize active window left top 
corner"));
+       WMAddListItem(panel->actLs, _("Maximize active window right top 
corner"));
+       WMAddListItem(panel->actLs, _("Maximize active window left bottom 
corner"));
+       WMAddListItem(panel->actLs, _("Maximize active window right bottom 
corner"));
        WMAddListItem(panel->actLs, _("Maximus: Tiled maximization "));
        WMAddListItem(panel->actLs, _("Raise active window"));
        WMAddListItem(panel->actLs, _("Lower active window"));
diff --git a/src/actions.c b/src/actions.c
index b461d4d..e6c2980 100644
--- a/src/actions.c
+++ b/src/actions.c
@@ -341,46 +341,54 @@ void update_saved_geometry(WWindow *wwin)
                save_old_geometry(wwin, SAVE_GEOMETRY_X);
 }
 
-#define IS_MAX_HORIZONTALLY(directions) ((directions & MAX_HORIZONTAL) | 
(directions & MAX_LEFTHALF) | (directions & MAX_RIGHTHALF))
 void wMaximizeWindow(WWindow *wwin, int directions)
 {
-       int new_x, new_y;
-       unsigned int new_width, new_height, half_scr_width;
+    fprintf(stderr, "FLAGS:\t\tMH=%d, MV=%d, ML=%d, MR=%d, MT=%d, MB=%d, 
MM=%d\n",
+            wwin->flags.maximized & MAX_HORIZONTAL,
+            wwin->flags.maximized & MAX_VERTICAL,
+            wwin->flags.maximized & MAX_LEFTHALF,
+            wwin->flags.maximized & MAX_RIGHTHALF,
+            wwin->flags.maximized & MAX_TOPHALF,
+            wwin->flags.maximized & MAX_BOTTOMHALF,
+            wwin->flags.maximized & MAX_MAXIMUS);
+    fprintf(stderr, "DIRECTIONS\tMH=%d, MV=%d, ML=%d, MR=%d, MT=%d, MB=%d, 
MM=%d\n",
+            directions & MAX_HORIZONTAL,
+            directions & MAX_VERTICAL,
+            directions & MAX_LEFTHALF,
+            directions & MAX_RIGHTHALF,
+            directions & MAX_TOPHALF,
+            directions & MAX_BOTTOMHALF,
+            directions & MAX_MAXIMUS);
+    fprintf(stderr, "x=%d, y=%d, w=%d, h=%d\n",
+            wwin->old_geometry.x,
+            wwin->old_geometry.y,
+            wwin->old_geometry.width,
+            wwin->old_geometry.height);
+       unsigned int half_scr_width, half_scr_height;
+       int new_x = 0;
+       int new_y = 0;
+       unsigned int new_width = 0;
+       unsigned int new_height = 0;
        int maximus_x = 0;
        int maximus_y = 0;
        unsigned int maximus_width = 0;
        unsigned int maximus_height = 0;
        WArea usableArea, totalArea;
        Bool has_border = 1;
-       int save_directions = 0;
        int adj_size;
 
        if (!IS_RESIZABLE(wwin))
                return;
 
-       if (!HAS_BORDER(wwin))
-               has_border = 0;
+       /* save old coordinates before we change the current values */
+       if (!wwin->flags.maximized)
+               save_old_geometry(wwin, SAVE_GEOMETRY_ALL);
 
        /* the size to adjust the geometry */
+       if (!HAS_BORDER(wwin))
+               has_border = 0;
        adj_size = wwin->screen_ptr->frame_border_width * 2 * has_border;
 
-       /* save old coordinates before we change the current values
-        * always if the window is not currently maximized at all
-        * but never if the window has been Maximusized */
-       if (!wwin->flags.maximized)
-               save_directions |= SAVE_GEOMETRY_ALL;
-       else if (!(wwin->flags.old_maximized & MAX_MAXIMUS)) {
-               if ((directions & MAX_VERTICAL) &&
-                   !(wwin->flags.maximized & MAX_VERTICAL))
-                       save_directions |= SAVE_GEOMETRY_Y | 
SAVE_GEOMETRY_HEIGHT;
-               if (IS_MAX_HORIZONTALLY(directions) &&
-                   !IS_MAX_HORIZONTALLY(wwin->flags.maximized))
-                       save_directions |= SAVE_GEOMETRY_X | 
SAVE_GEOMETRY_WIDTH;
-       }
-       if ((directions & MAX_MAXIMUS) && !wwin->flags.maximized)
-               save_directions |= SAVE_GEOMETRY_ALL;
-       save_old_geometry(wwin, save_directions);
-
        totalArea.x1 = 0;
        totalArea.y1 = 0;
        totalArea.x2 = wwin->screen_ptr->scr_width;
@@ -399,89 +407,66 @@ void wMaximizeWindow(WWindow *wwin, int directions)
                usableArea = wGetUsableAreaForHead(scr, head, &totalArea, True);
        }
 
-       /* remember Maximus geometry if we'll need it later */
-       if ((wwin->flags.old_maximized & MAX_MAXIMUS) || (directions & 
MAX_MAXIMUS))
-               find_Maximus_geometry(wwin, usableArea, &maximus_x, &maximus_y, 
&maximus_width, &maximus_height);
-
        /* Only save directions, not kbd or xinerama hints */
-       directions &= (MAX_HORIZONTAL | MAX_VERTICAL | MAX_LEFTHALF | 
MAX_RIGHTHALF | MAX_MAXIMUS);
+       directions &= (MAX_HORIZONTAL | MAX_VERTICAL | MAX_LEFTHALF | 
MAX_RIGHTHALF | MAX_TOPHALF | MAX_BOTTOMHALF| MAX_MAXIMUS);
 
-       if (WFLAGP(wwin, full_maximize)) {
+       if (WFLAGP(wwin, full_maximize))
                usableArea = totalArea;
-       }
-       half_scr_width = (usableArea.x2 - usableArea.x1)/2;
-
        if (wwin->flags.shaded) {
                wwin->flags.skip_next_animation = 1;
                wUnshadeWindow(wwin);
        }
 
-       if (directions & MAX_HORIZONTAL) {
-               new_width = usableArea.x2 - usableArea.x1 - adj_size;
-               new_x = usableArea.x1;
-       } else if (directions & MAX_LEFTHALF) {
-               new_width = half_scr_width - adj_size;
-               new_x = usableArea.x1;
-               wwin->flags.old_maximized |= MAX_LEFTHALF;
-               wwin->flags.old_maximized &= ~MAX_RIGHTHALF;
-       } else if (directions & MAX_RIGHTHALF) {
-               new_width = half_scr_width - adj_size;
-               new_x = usableArea.x1 + half_scr_width;
-               wwin->flags.old_maximized |= MAX_RIGHTHALF;
-               wwin->flags.old_maximized &= ~MAX_LEFTHALF;
-       } else if (wwin->flags.old_maximized & MAX_MAXIMUS) {
-               new_x = maximus_x;
-               new_width = maximus_width - adj_size;
-       } else if (IS_MAX_HORIZONTALLY(wwin->flags.maximized)) {
-               new_x = (wwin->old_geometry.x) ? wwin->old_geometry.x : 
wwin->frame_x;
-               new_width = (wwin->old_geometry.width) ? 
wwin->old_geometry.width : wwin->frame->core->width;
-       } else {
-               wwin->flags.old_maximized &= ~(MAX_LEFTHALF | MAX_RIGHTHALF);
-               new_x = wwin->frame_x;
-               new_width = wwin->frame->core->width;
-       }
-
-       if (directions & MAX_VERTICAL) {
-               new_height = usableArea.y2 - usableArea.y1 - adj_size;
-               new_y = usableArea.y1;
-               if (WFLAGP(wwin, full_maximize)) {
-                       new_y -= wwin->frame->top_width;
-                       new_height += wwin->frame->bottom_width - 1;
-               }
-       } else if (wwin->flags.old_maximized & MAX_MAXIMUS) {
-               new_y = maximus_y;
-               new_height = maximus_height - adj_size;
-               /* HACK: this will be subtracted again below */
-               new_height += wwin->frame->top_width + 
wwin->frame->bottom_width;
-       } else if (wwin->flags.maximized & MAX_VERTICAL) {
-               new_y = (wwin->old_geometry.y) ? wwin->old_geometry.y : 
wwin->frame_y;
-               new_height = (wwin->old_geometry.height) ? 
wwin->old_geometry.height : wwin->frame->core->height;
-               /* HACK: this will be subtracted again below */
-               new_height += wwin->frame->top_width + 
wwin->frame->bottom_width;
-               wwin->flags.old_maximized &= ~(MAX_LEFTHALF | MAX_RIGHTHALF);
-       } else {
-               new_y = wwin->frame_y;
-               new_height = wwin->frame->core->height;
-       }
-
-       if (!WFLAGP(wwin, full_maximize)) {
-               new_height -= wwin->frame->top_width + 
wwin->frame->bottom_width;
-       }
+       half_scr_width = (usableArea.x2 - usableArea.x1)/2;
+       half_scr_height = (usableArea.y2 - usableArea.y1)/2;
 
        if (directions & MAX_MAXIMUS) {
+               find_Maximus_geometry(wwin, usableArea, &maximus_x, &maximus_y, 
&maximus_width, &maximus_height);
                new_x = maximus_x;
                new_y = maximus_y;
                new_width = maximus_width - adj_size;
                new_height = maximus_height - adj_size;
-               if (WFLAGP(wwin, full_maximize) && new_y == 0) {
+               if (WFLAGP(wwin, full_maximize)) {
                        new_y -= wwin->frame->top_width;
                        new_height += wwin->frame->top_width - 1;
                }
                wwin->maximus_x = new_x;
                wwin->maximus_y = new_y;
-               wwin->flags.old_maximized |= MAX_MAXIMUS;
+       } else {
+               if (directions & MAX_LEFTHALF) {
+                       new_width = half_scr_width - adj_size;
+                       new_x = usableArea.x1;
+               }
+               if (directions & MAX_RIGHTHALF) {
+                       new_width = half_scr_width - adj_size;
+                       new_x = usableArea.x1 + half_scr_width;
+               }
+               if (directions & MAX_TOPHALF) {
+                       new_height = half_scr_height - adj_size;
+                       new_y = usableArea.y1;
+               }
+               if (directions & MAX_BOTTOMHALF) {
+                       new_height = half_scr_height - adj_size;
+                       new_y = usableArea.y1 + half_scr_height;
+               }
+
+               if (directions & MAX_HORIZONTAL) {
+                       new_width = usableArea.x2 - usableArea.x1 - adj_size;
+                       new_x = usableArea.x1;
+               }
+               if (directions & MAX_VERTICAL) {
+                       new_height = usableArea.y2 - usableArea.y1 - adj_size;
+                       new_y = usableArea.y1;
+                       if (WFLAGP(wwin, full_maximize)) {
+                               new_y -= wwin->frame->top_width;
+                               new_height += wwin->frame->bottom_width - 1;
+                       }
+               }
        }
 
+       /* set maximization state */
+       wwin->flags.maximized = directions;
+
        wWindowConstrainSize(wwin, &new_width, &new_height);
 
        wWindowCropSize(wwin, usableArea.x2 - usableArea.x1,
@@ -491,82 +476,48 @@ void wMaximizeWindow(WWindow *wwin, int directions)
        wWindowSynthConfigureNotify(wwin);
 
        WMPostNotificationName(WMNChangedState, wwin, "maximize");
-
-       /* set maximization state */
-       wwin->flags.maximized = directions;
-       if ((wwin->flags.old_maximized & MAX_MAXIMUS) && !wwin->flags.maximized)
-               wwin->flags.maximized = MAX_MAXIMUS;
 }
 
 /* generic (un)maximizer */
 void handleMaximize(WWindow *wwin, int directions)
 {
-       int current = wwin->flags.maximized;
-       int requested = directions & (MAX_HORIZONTAL | MAX_VERTICAL | 
MAX_LEFTHALF | MAX_RIGHTHALF | MAX_MAXIMUS);
-       int effective = requested ^ current;
+       int requested = directions & (MAX_HORIZONTAL | MAX_VERTICAL | 
MAX_LEFTHALF | MAX_RIGHTHALF | MAX_TOPHALF | MAX_BOTTOMHALF | MAX_MAXIMUS);
        int flags = directions & ~requested;
-
-       if (!effective) {
-               /* allow wMaximizeWindow to restore the Maximusized size */
-               if ((wwin->flags.old_maximized & MAX_MAXIMUS) &&
-                   !(requested & MAX_MAXIMUS))
-                       wMaximizeWindow(wwin, flags);
-               else
-                       wUnmaximizeWindow(wwin);
-       }
-       else {
-               /* MAX_MAXIMUS takes precedence */
-               effective &= ~MAX_MAXIMUS;
-               if (requested & MAX_MAXIMUS) {
-                       /* window was previously Maximusized then maximized */
-                       if ((wwin->flags.old_maximized & MAX_MAXIMUS) && 
!current) {
-                               wUnmaximizeWindow(wwin);
-                               return;
-                       }
-                       else
-                               effective = MAX_MAXIMUS;
-               }
-               else if (requested == (MAX_HORIZONTAL | MAX_VERTICAL))
-                       effective = requested;
+       int current = wwin->flags.maximized;
+       int effective = requested;
+
+       /* test if is a maximize change */
+       if (requested ^ current) {
+               if (directions & MAX_MAXIMUS)
+                       effective = MAX_MAXIMUS;
+               else if ((directions & MAX_HORIZONTAL) & (directions & 
MAX_VERTICAL))
+                       effective = MAX_HORIZONTAL | MAX_VERTICAL;
                else {
-                       /* handle MAX_HORIZONTAL -> MAX_(LEFT|RIGHT)HALF */
-                       if (IS_MAX_HORIZONTALLY(current)) {
-                               if (IS_MAX_HORIZONTALLY(requested)) {
-                                       effective &= ~(MAX_HORIZONTAL | 
MAX_LEFTHALF | MAX_RIGHTHALF);
-                                       effective |= (requested & 
(MAX_HORIZONTAL | MAX_LEFTHALF | MAX_RIGHTHALF));
-                                       if (requested & MAX_HORIZONTAL) {
-                                               /* restore to half maximization 
*/
-                                               if (wwin->flags.old_maximized & 
MAX_LEFTHALF)
-                                                       effective |= 
MAX_LEFTHALF;
-                                               else if 
(wwin->flags.old_maximized & MAX_RIGHTHALF)
-                                                       effective |= 
MAX_RIGHTHALF;
-                                       }
-                                       /* MAX_VERTICAL is implicit with 
MAX_(LEFT|RIGHT)HALF */
-                                       else
-                                               effective |= MAX_VERTICAL;
-                               } else {
-                                       /* toggling MAX_VERTICAL */
-                                       if ((requested & MAX_VERTICAL) &&
-                                           (current & MAX_VERTICAL)) {
-                                               effective &= ~(MAX_LEFTHALF | 
MAX_RIGHTHALF | MAX_VERTICAL);
-                                       }
-                               }
-                       }
-                       /* handle MAX_VERTICAL -> MAX_(LEFT|RIGHT)HALF */
-                       if (current & MAX_VERTICAL) {
-                               if ((requested & MAX_LEFTHALF) ||
-                                   (requested & MAX_RIGHTHALF)) {
+                       /* there is 8 possible window positions here:
+                        * left, right, top, bottom and 4 corners */
+                       /* if left and not (top or bottom) then max vertical */
+                       if (directions & MAX_LEFTHALF) {
+                               if (!(directions & (MAX_TOPHALF | 
MAX_BOTTOMHALF)))
                                        effective |= MAX_VERTICAL;
-                               }
+                               effective &= ~MAX_RIGHTHALF;
+                       } else if (directions & MAX_RIGHTHALF) {
+                               if (!(directions & (MAX_TOPHALF | 
MAX_BOTTOMHALF)))
+                                       effective |= MAX_VERTICAL;
+                               effective &= ~MAX_LEFTHALF;
+                       }
+                       if (directions & MAX_TOPHALF) {
+                               if (!(directions & (MAX_LEFTHALF | 
MAX_RIGHTHALF)))
+                                       effective |= MAX_HORIZONTAL;
+                               effective &= ~MAX_BOTTOMHALF;
+                       } else if (directions & MAX_BOTTOMHALF) {
+                               if (!(directions & (MAX_LEFTHALF | 
MAX_RIGHTHALF)))
+                                       effective |= MAX_HORIZONTAL;
+                               effective &= ~MAX_TOPHALF;
                        }
-                       /* toggling MAX_HORIZONTAL */
-                       if ((requested & MAX_HORIZONTAL) &&
-                           (current & MAX_HORIZONTAL))
-                               effective &= ~MAX_HORIZONTAL;
                }
                wMaximizeWindow(wwin, effective | flags);
-       }
-       return;
+       } else
+               wUnmaximizeWindow(wwin);
 }
 
 /* the window boundary coordinates */
@@ -718,7 +669,6 @@ void wUnmaximizeWindow(WWindow *wwin)
        }
 
        wwin->flags.maximized = 0;
-       wwin->flags.old_maximized = 0;
        wWindowConfigure(wwin, x, y, w, h);
        wWindowSynthConfigureNotify(wwin);
 
diff --git a/src/actions.h b/src/actions.h
index 55de740..8390e49 100644
--- a/src/actions.h
+++ b/src/actions.h
@@ -27,9 +27,11 @@
 #define MAX_VERTICAL           (1 << 1)
 #define MAX_LEFTHALF           (1 << 2)
 #define MAX_RIGHTHALF          (1 << 3)
-#define MAX_MAXIMUS            (1 << 4)
-#define MAX_IGNORE_XINERAMA    (1 << 5)
-#define MAX_KEYBOARD           (1 << 6)
+#define MAX_TOPHALF            (1 << 4)
+#define MAX_BOTTOMHALF         (1 << 5)
+#define MAX_MAXIMUS            (1 << 6)
+#define MAX_IGNORE_XINERAMA    (1 << 7)
+#define MAX_KEYBOARD           (1 << 8)
 
 #define SAVE_GEOMETRY_X        (1 << 0)
 #define SAVE_GEOMETRY_Y        (1 << 1)
diff --git a/src/defaults.c b/src/defaults.c
index 5300a23..9ec7a1b 100644
--- a/src/defaults.c
+++ b/src/defaults.c
@@ -602,6 +602,18 @@ WDefaultEntry optionList[] = {
            NULL, getKeybind, setKeyGrab, NULL, NULL},
        {"RHMaximizeKey", "None", (void*)WKBD_RHMAXIMIZE,
            NULL, getKeybind, setKeyGrab, NULL, NULL},
+       {"THMaximizeKey", "None", (void*)WKBD_THMAXIMIZE,
+           NULL, getKeybind, setKeyGrab, NULL, NULL},
+       {"BHMaximizeKey", "None", (void*)WKBD_BHMAXIMIZE,
+           NULL, getKeybind, setKeyGrab, NULL, NULL},
+       {"LTCMaximizeKey", "None", (void*)WKBD_LTCMAXIMIZE,
+           NULL, getKeybind, setKeyGrab, NULL, NULL},
+       {"RTCMaximizeKey", "None", (void*)WKBD_RTCMAXIMIZE,
+           NULL, getKeybind, setKeyGrab, NULL, NULL},
+       {"LBCMaximizeKey", "None", (void*)WKBD_LBCMAXIMIZE,
+           NULL, getKeybind, setKeyGrab, NULL, NULL},
+       {"RBCMaximizeKey", "None", (void*)WKBD_RBCMAXIMIZE,
+           NULL, getKeybind, setKeyGrab, NULL, NULL},
        {"MaximusKey", "None", (void*)WKBD_MAXIMUS,
            NULL, getKeybind, setKeyGrab, NULL, NULL},
        {"RaiseKey", "\"Meta+Up\"", (void *)WKBD_RAISE,
diff --git a/src/event.c b/src/event.c
index 302497b..3f73ff6 100644
--- a/src/event.c
+++ b/src/event.c
@@ -1469,6 +1469,47 @@ static void handleKeyPress(XEvent * event)
                        handleMaximize(wwin, MAX_VERTICAL | MAX_RIGHTHALF | 
MAX_KEYBOARD);
                }
                break;
+       case WKBD_THMAXIMIZE:
+               if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) {
+                       CloseWindowMenu(scr);
+
+                       handleMaximize(wwin, MAX_HORIZONTAL | MAX_TOPHALF | 
MAX_KEYBOARD);
+               }
+               break;
+       case WKBD_BHMAXIMIZE:
+               if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) {
+                       CloseWindowMenu(scr);
+
+                       handleMaximize(wwin, MAX_HORIZONTAL | MAX_BOTTOMHALF | 
MAX_KEYBOARD);
+               }
+               break;
+       case WKBD_LTCMAXIMIZE:
+               if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) {
+                       CloseWindowMenu(scr);
+
+                       handleMaximize(wwin, MAX_LEFTHALF | MAX_TOPHALF | 
MAX_KEYBOARD);
+               }
+               break;
+       case WKBD_RTCMAXIMIZE:
+               if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) {
+                       CloseWindowMenu(scr);
+
+                       handleMaximize(wwin, MAX_RIGHTHALF | MAX_TOPHALF | 
MAX_KEYBOARD);
+               }
+               break;
+       case WKBD_LBCMAXIMIZE:
+               if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) {
+                       CloseWindowMenu(scr);
+
+                       handleMaximize(wwin, MAX_LEFTHALF | MAX_BOTTOMHALF | 
MAX_KEYBOARD);
+               }
+       case WKBD_RBCMAXIMIZE:
+               if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) {
+                       CloseWindowMenu(scr);
+
+                       handleMaximize(wwin, MAX_RIGHTHALF | MAX_BOTTOMHALF | 
MAX_KEYBOARD);
+               }
+               break;
        case WKBD_MAXIMUS:
                if (ISMAPPED(wwin) && ISFOCUSED(wwin) && IS_RESIZABLE(wwin)) {
                        CloseWindowMenu(scr);
diff --git a/src/keybind.h b/src/keybind.h
index 4437950..49552a1 100644
--- a/src/keybind.h
+++ b/src/keybind.h
@@ -35,8 +35,14 @@ enum {
        WKBD_MAXIMIZE,
        WKBD_VMAXIMIZE,
        WKBD_HMAXIMIZE,
-        WKBD_LHMAXIMIZE,
+       WKBD_LHMAXIMIZE,
        WKBD_RHMAXIMIZE,
+       WKBD_THMAXIMIZE,
+       WKBD_BHMAXIMIZE,
+       WKBD_LTCMAXIMIZE,
+       WKBD_RTCMAXIMIZE,
+       WKBD_LBCMAXIMIZE,
+       WKBD_RBCMAXIMIZE,
        WKBD_MAXIMUS,
        WKBD_SELECT,
        WKBD_RAISE,
diff --git a/src/window.h b/src/window.h
index a95b9f7..182db56 100644
--- a/src/window.h
+++ b/src/window.h
@@ -249,8 +249,7 @@ typedef struct WWindow {
                unsigned int miniaturized:1;
                unsigned int hidden:1;
                unsigned int shaded:1;
-               unsigned int maximized:5;
-               unsigned int old_maximized:5;
+               unsigned int maximized:7;
                unsigned int fullscreen:1;
                unsigned int omnipresent:1;
                unsigned int semi_focused:1;
-- 
1.8.1.2


-- 
To unsubscribe, send mail to wmaker-dev-unsubscr...@lists.windowmaker.org.

Reply via email to