Client/Layout/Tag: Balance position of window in frame with resizehint, refresh only client size at resizehint toggle and fix layout with tag additional
This commit is contained in:
@@ -1021,6 +1021,7 @@ void
|
|||||||
client_moveresize(Client *c, XRectangle geo, Bool r)
|
client_moveresize(Client *c, XRectangle geo, Bool r)
|
||||||
{
|
{
|
||||||
int os, e;
|
int os, e;
|
||||||
|
int rhx = 0, rhy = 0;
|
||||||
|
|
||||||
if(!c)
|
if(!c)
|
||||||
return;
|
return;
|
||||||
@@ -1050,8 +1051,14 @@ client_moveresize(Client *c, XRectangle geo, Bool r)
|
|||||||
|
|
||||||
/* Apply geometry hints */
|
/* Apply geometry hints */
|
||||||
if(r)
|
if(r)
|
||||||
|
{
|
||||||
client_geo_hints(&geo, c);
|
client_geo_hints(&geo, c);
|
||||||
|
|
||||||
|
/* To balance position of window in frame */
|
||||||
|
rhx = ((c->wrgeo.width) - geo.width) / 2;
|
||||||
|
rhy = ((c->wrgeo.height) - geo.height) / 2;
|
||||||
|
}
|
||||||
|
|
||||||
c->geo = geo;
|
c->geo = geo;
|
||||||
|
|
||||||
/* Sett free_geo */
|
/* Sett free_geo */
|
||||||
@@ -1066,7 +1073,7 @@ client_moveresize(Client *c, XRectangle geo, Bool r)
|
|||||||
|
|
||||||
frame_moveresize(c, c->wrgeo);
|
frame_moveresize(c, c->wrgeo);
|
||||||
|
|
||||||
XMoveResizeWindow(dpy, c->win, BORDH, TBARH, c->geo.width, c->geo.height);
|
XMoveResizeWindow(dpy, c->win, BORDH + rhx, TBARH + rhy, c->geo.width, c->geo.height);
|
||||||
|
|
||||||
client_update_attributes(c);
|
client_update_attributes(c);
|
||||||
client_configure(c);
|
client_configure(c);
|
||||||
|
|||||||
@@ -778,12 +778,15 @@ uicb_togglemax(uicb_t cmd)
|
|||||||
void
|
void
|
||||||
uicb_toggle_resizehint(uicb_t cmd)
|
uicb_toggle_resizehint(uicb_t cmd)
|
||||||
{
|
{
|
||||||
|
Client *c;
|
||||||
|
|
||||||
screen_get_sel();
|
screen_get_sel();
|
||||||
(void)cmd;
|
(void)cmd;
|
||||||
|
|
||||||
tags[selscreen][seltag[selscreen]].resizehint = !tags[selscreen][seltag[selscreen]].resizehint;
|
tags[selscreen][seltag[selscreen]].resizehint = !tags[selscreen][seltag[selscreen]].resizehint;
|
||||||
|
|
||||||
tags[selscreen][seltag[selscreen]].layout.func(selscreen);
|
for(c = tiled_client(selscreen, clients); c; c = tiled_client(selscreen, c->next))
|
||||||
|
client_moveresize(c, c->geo, tags[selscreen][seltag[selscreen]].resizehint);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -500,6 +500,8 @@ tag_additional(int sc, int tag, int adtag)
|
|||||||
|
|
||||||
tags[sc][tag].tagad ^= TagFlag(adtag);
|
tags[sc][tag].tagad ^= TagFlag(adtag);
|
||||||
tags[sc][adtag].request_update = True;
|
tags[sc][adtag].request_update = True;
|
||||||
|
tags[sc][tag].cleanfact = True;
|
||||||
|
tags[sc][adtag].cleanfact = True;
|
||||||
arrange(sc, True);
|
arrange(sc, True);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in New Issue
Block a user