summaryrefslogtreecommitdiff
path: root/openbox
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2007-05-20 07:02:49 +0000
committerDana Jansens <danakj@orodu.net>2007-05-20 07:02:49 +0000
commit7472ed3557353e4a779da2a9b6b01532f7374022 (patch)
tree42d423aab50d98c6b9a7102b9cc41168cd93edd8 /openbox
parent1612a16e80abb7994d9498de48fe4c0ded00cdb9 (diff)
fix new dimensions for maximized windows
Diffstat (limited to 'openbox')
-rw-r--r--openbox/frame.c41
-rw-r--r--openbox/frame.h2
2 files changed, 32 insertions, 11 deletions
diff --git a/openbox/frame.c b/openbox/frame.c
index 73d5c026..1fbf2152 100644
--- a/openbox/frame.c
+++ b/openbox/frame.c
@@ -338,17 +338,20 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
self->bwidth = self->cbwidth_x = self->cbwidth_y = 0;
}
self->rbwidth = self->bwidth;
+ self->leftb = self->rightb = TRUE;
- if (self->max_horz)
+ if (self->max_horz) {
+ self->leftb = self->rightb = FALSE;
self->cbwidth_x = 0;
+ }
self->width = self->client->area.width + self->cbwidth_x * 2;
self->width = MAX(self->width, 1); /* no lower than 1 */
STRUT_SET(self->size,
- self->cbwidth_x + self->bwidth,
+ self->cbwidth_x + (self->leftb ? self->bwidth : 0),
self->cbwidth_y + self->bwidth,
- self->cbwidth_x + self->bwidth,
+ self->cbwidth_x + (self->rightb ? self->bwidth : 0),
self->cbwidth_y + self->bwidth);
if (self->decorations & OB_FRAME_DECOR_TITLEBAR)
@@ -380,16 +383,21 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
0,
ob_rr_theme->grip_width + self->bwidth,
self->bwidth);
+
XMoveResizeWindow(ob_display, self->titleleft,
0, self->bwidth,
self->bwidth,
- ob_rr_theme->grip_width);
+ (self->leftb ?
+ ob_rr_theme->grip_width :
+ self->size.top - self->bwidth));
XMoveResizeWindow(ob_display, self->titleright,
self->client->area.width +
self->cbwidth_x * 2 + self->bwidth,
self->bwidth,
self->bwidth,
- ob_rr_theme->grip_width);
+ (self->rightb ?
+ ob_rr_theme->grip_width :
+ self->size.top - self->bwidth));
XMapWindow(ob_display, self->titletop);
XMapWindow(ob_display, self->titletopleft);
@@ -475,17 +483,25 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
0,
self->size.top + self->client->area.height +
self->size.bottom -
- ob_rr_theme->grip_width,
+ (self->leftb ?
+ ob_rr_theme->grip_width :
+ self->size.bottom),
self->bwidth,
- ob_rr_theme->grip_width);
+ (self->leftb ?
+ ob_rr_theme->grip_width :
+ self->size.bottom));
XMoveResizeWindow(ob_display, self->rgripright,
self->size.left + self->client->area.width +
self->size.right - self->bwidth,
self->size.top + self->client->area.height +
self->size.bottom -
- ob_rr_theme->grip_width,
+ (self->leftb ?
+ ob_rr_theme->grip_width :
+ self->size.bottom),
self->bwidth,
- ob_rr_theme->grip_width);
+ (self->rightb ?
+ ob_rr_theme->grip_width :
+ self->size.bottom));
XMoveResizeWindow(ob_display, self->lgripbottom,
self->bwidth,
@@ -629,13 +645,16 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
0,
self->size.top - self->cbwidth_y,
self->client->area.width +
- self->cbwidth_x * 2 + self->bwidth * 2,
+ self->cbwidth_x * 2 +
+ (self->leftb ? self->bwidth : 0) +
+ (self->rightb ? self->bwidth : 0),
self->client->area.height +
self->cbwidth_y * 2);
/* move the plate */
XMoveWindow(ob_display, self->plate,
- self->bwidth + self->cbwidth_x, self->cbwidth_y);
+ (self->leftb ? self->bwidth : 0) + self->cbwidth_x,
+ self->cbwidth_y);
/* when the client has StaticGravity, it likes to move around. */
XMoveWindow(ob_display, self->client->window, 0, 0);
diff --git a/openbox/frame.h b/openbox/frame.h
index 956c0258..b1ed8183 100644
--- a/openbox/frame.h
+++ b/openbox/frame.h
@@ -160,6 +160,8 @@ struct _ObFrame
gint rbwidth; /* border width between the title and client */
gint cbwidth_x; /* client border width */
gint cbwidth_y; /* client border width */
+ gboolean leftb; /* is there a border to the left of the client? */
+ gboolean rightb; /* is there a border to the right of the client?*/
/* the leftmost and rightmost elements in the titlebar */
ObFrameContext leftmost;