fix new dimensions for maximized windows
This commit is contained in:
parent
1612a16e80
commit
7472ed3557
2 changed files with 32 additions and 11 deletions
|
@ -338,17 +338,20 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
|
||||||
self->bwidth = self->cbwidth_x = self->cbwidth_y = 0;
|
self->bwidth = self->cbwidth_x = self->cbwidth_y = 0;
|
||||||
}
|
}
|
||||||
self->rbwidth = self->bwidth;
|
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->cbwidth_x = 0;
|
||||||
|
}
|
||||||
|
|
||||||
self->width = self->client->area.width + self->cbwidth_x * 2;
|
self->width = self->client->area.width + self->cbwidth_x * 2;
|
||||||
self->width = MAX(self->width, 1); /* no lower than 1 */
|
self->width = MAX(self->width, 1); /* no lower than 1 */
|
||||||
|
|
||||||
STRUT_SET(self->size,
|
STRUT_SET(self->size,
|
||||||
self->cbwidth_x + self->bwidth,
|
self->cbwidth_x + (self->leftb ? self->bwidth : 0),
|
||||||
self->cbwidth_y + self->bwidth,
|
self->cbwidth_y + self->bwidth,
|
||||||
self->cbwidth_x + self->bwidth,
|
self->cbwidth_x + (self->rightb ? self->bwidth : 0),
|
||||||
self->cbwidth_y + self->bwidth);
|
self->cbwidth_y + self->bwidth);
|
||||||
|
|
||||||
if (self->decorations & OB_FRAME_DECOR_TITLEBAR)
|
if (self->decorations & OB_FRAME_DECOR_TITLEBAR)
|
||||||
|
@ -380,16 +383,21 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
|
||||||
0,
|
0,
|
||||||
ob_rr_theme->grip_width + self->bwidth,
|
ob_rr_theme->grip_width + self->bwidth,
|
||||||
self->bwidth);
|
self->bwidth);
|
||||||
|
|
||||||
XMoveResizeWindow(ob_display, self->titleleft,
|
XMoveResizeWindow(ob_display, self->titleleft,
|
||||||
0, self->bwidth,
|
0, self->bwidth,
|
||||||
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,
|
XMoveResizeWindow(ob_display, self->titleright,
|
||||||
self->client->area.width +
|
self->client->area.width +
|
||||||
self->cbwidth_x * 2 + self->bwidth,
|
self->cbwidth_x * 2 + self->bwidth,
|
||||||
self->bwidth,
|
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->titletop);
|
||||||
XMapWindow(ob_display, self->titletopleft);
|
XMapWindow(ob_display, self->titletopleft);
|
||||||
|
@ -475,17 +483,25 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
|
||||||
0,
|
0,
|
||||||
self->size.top + self->client->area.height +
|
self->size.top + self->client->area.height +
|
||||||
self->size.bottom -
|
self->size.bottom -
|
||||||
ob_rr_theme->grip_width,
|
(self->leftb ?
|
||||||
|
ob_rr_theme->grip_width :
|
||||||
|
self->size.bottom),
|
||||||
self->bwidth,
|
self->bwidth,
|
||||||
ob_rr_theme->grip_width);
|
(self->leftb ?
|
||||||
|
ob_rr_theme->grip_width :
|
||||||
|
self->size.bottom));
|
||||||
XMoveResizeWindow(ob_display, self->rgripright,
|
XMoveResizeWindow(ob_display, self->rgripright,
|
||||||
self->size.left + self->client->area.width +
|
self->size.left + self->client->area.width +
|
||||||
self->size.right - self->bwidth,
|
self->size.right - self->bwidth,
|
||||||
self->size.top + self->client->area.height +
|
self->size.top + self->client->area.height +
|
||||||
self->size.bottom -
|
self->size.bottom -
|
||||||
ob_rr_theme->grip_width,
|
(self->leftb ?
|
||||||
|
ob_rr_theme->grip_width :
|
||||||
|
self->size.bottom),
|
||||||
self->bwidth,
|
self->bwidth,
|
||||||
ob_rr_theme->grip_width);
|
(self->rightb ?
|
||||||
|
ob_rr_theme->grip_width :
|
||||||
|
self->size.bottom));
|
||||||
|
|
||||||
XMoveResizeWindow(ob_display, self->lgripbottom,
|
XMoveResizeWindow(ob_display, self->lgripbottom,
|
||||||
self->bwidth,
|
self->bwidth,
|
||||||
|
@ -629,13 +645,16 @@ void frame_adjust_area(ObFrame *self, gboolean moved,
|
||||||
0,
|
0,
|
||||||
self->size.top - self->cbwidth_y,
|
self->size.top - self->cbwidth_y,
|
||||||
self->client->area.width +
|
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->client->area.height +
|
||||||
self->cbwidth_y * 2);
|
self->cbwidth_y * 2);
|
||||||
|
|
||||||
/* move the plate */
|
/* move the plate */
|
||||||
XMoveWindow(ob_display, self->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. */
|
/* when the client has StaticGravity, it likes to move around. */
|
||||||
XMoveWindow(ob_display, self->client->window, 0, 0);
|
XMoveWindow(ob_display, self->client->window, 0, 0);
|
||||||
|
|
|
@ -160,6 +160,8 @@ struct _ObFrame
|
||||||
gint rbwidth; /* border width between the title and client */
|
gint rbwidth; /* border width between the title and client */
|
||||||
gint cbwidth_x; /* client border width */
|
gint cbwidth_x; /* client border width */
|
||||||
gint cbwidth_y; /* 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 */
|
/* the leftmost and rightmost elements in the titlebar */
|
||||||
ObFrameContext leftmost;
|
ObFrameContext leftmost;
|
||||||
|
|
Loading…
Reference in a new issue