Client: Keep free-size after toggle_{free, max}.

This commit is contained in:
OldMan
2010-02-25 20:48:24 +01:00
parent 7e44e4b314
commit 2b7d1c115d
3 changed files with 14 additions and 2 deletions

View File

@@ -71,7 +71,7 @@ freelayout(int screen)
&& c->screen == screen_get_sel()
&& !(c->flags & MaxFlag))
{
client_moveresize(c, c->ogeo, True);
client_moveresize(c, c->free_geo, True);
c->flags &= ~(TileFlag | LMaxFlag);
}
@@ -93,7 +93,10 @@ layoutswitch(Bool b)
if(tags[selscreen][seltag[selscreen]].layout.func == freelayout)
for(c = clients; c && (c->tag != seltag[selscreen] && c->screen != selscreen); c = c->next)
{
c->ogeo = c->geo;
c->free_geo = c->geo;
}
for(i = 0; i < conf.nlayout; ++i)
{
@@ -775,11 +778,14 @@ uicb_togglefree(uicb_t cmd)
if((sel->flags & FreeFlag))
{
sel->flags &= ~(TileFlag | MaxFlag | LMaxFlag);
client_moveresize(sel, sel->ogeo, True);
client_moveresize(sel, sel->free_geo, True);
client_raise(sel);
}
else
{
sel->free_geo = sel->geo;
sel->ogeo = sel->geo;
}
client_update_attributes(sel);
@@ -802,6 +808,7 @@ uicb_togglemax(uicb_t cmd)
if(!(sel->flags & MaxFlag))
{
sel->ogeo = sel->geo;
sel->free_geo = sel->geo;
sel->flags &= ~(TileFlag | FreeFlag);
client_maximize(sel);
client_raise(sel);
@@ -809,6 +816,8 @@ uicb_togglemax(uicb_t cmd)
}
else
{
sel->geo = sel->free_geo;
client_moveresize(sel, sel->geo, True);
sel->flags &= ~MaxFlag;
tags[selscreen][seltag[selscreen]].layout.func(selscreen);
}