summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--openbox/client.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/openbox/client.c b/openbox/client.c
index 9a748e7f..774582e3 100644
--- a/openbox/client.c
+++ b/openbox/client.c
@@ -2209,8 +2209,18 @@ void client_maximize(ObClient *self, gboolean max, int dir, gboolean savearea)
h = self->area.height;
if (max) {
- if (savearea)
- self->pre_max_area = self->area;
+ if (savearea) {
+ if ((dir == 0 || dir == 1) && !self->max_horz) { /* horz */
+ RECT_SET(self->pre_max_area,
+ self->area.x, self->pre_max_area.y,
+ self->area.width, self->pre_max_area.height);
+ }
+ if ((dir == 0 || dir == 2) && !self->max_vert) { /* vert */
+ RECT_SET(self->pre_max_area,
+ self->pre_max_area.x, self->area.y,
+ self->pre_max_area.width, self->area.height);
+ }
+ }
} else {
Rect *a;