fix new dimensions for maximized windows

This commit is contained in:
Dana Jansens 2007-05-20 07:02:49 +00:00
parent 1612a16e80
commit 7472ed3557
2 changed files with 32 additions and 11 deletions

View file

@ -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);

View file

@ -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;