At 1228522529 time_t, Maarten Maathuis wrote: > Subject: [PATCH] client: Sometimes you need to arrange before a client gets > unbanned.
Merged. > Subject: [PATCH] client: Don't show transient windows for invisible parents. > + /* If the parent is invisible, then so should the child. */ > + if(c->transient_for) > + if(!client_isvisible_exclude_banned(c->transient_for, screen)) > + return false; If I understand correctly this breaks the tagging of transient windows. If there tags are differents from the parents, they will be totally invisible. I did not merged this one. > diff --git a/client.c b/client.c > index f1c2426..f55371e 100644 > --- a/client.c > +++ b/client.c > @@ -1284,7 +1284,11 @@ luaA_client_geometry(lua_State *L) > geometry.height = luaA_getopt_number(L, 2, "height", > (*c)->geometry.height); > } > > - (*c)->ismaxhoriz = (*c)->ismaxvert = false; > + if ((*c)->geometry.width != geometry.width || (*c)->geometry.x != > geometry.x) > + (*c)->ismaxhoriz = false; > + > + if ((*c)->geometry.height != geometry.height || (*c)->geometry.y != > geometry.y) > + (*c)->ismaxvert = false; > > client_resize(*c, geometry, (*c)->honorsizehints); > } This part seems ok so I've merged it into client: maximize belongs to client internal > diff --git a/lib/awful/client.lua.in b/lib/awful/client.lua.in > index 5ad971f..b2c7a98 100644 > --- a/lib/awful/client.lua.in > +++ b/lib/awful/client.lua.in > @@ -572,4 +572,25 @@ hooks.unmanage.register(urgent.delete) > > hooks.unmanage.register(floating.delete) > > +-- Pseudo tiled beheaviour for fully maximized clients. > +-- The lowering is needed to see all tiled windows again. > +-- The raising is needed to see the maximized window again. > +-- Lowering upon unfocus would mess with floating/transient windows. > +hooks.focus.register(function(c) > + if c.maximized_horizontal and c.maximized_vertical then > + c:raise() > + elseif not floating.get(c) then > + -- Find all maximized windows and lower them > + local tls = tag.selectedlist(c.screen) > + for i, t in pairs(tls) do > + local cls = t:clients() > + for j, cot in pairs(cls) do > + if cot.maximized_horizontal and cot.maximized_vertical then > + cot:lower() > + end > + end > + end > + end > +end) If I understand correctly, you raise full-maximized windows upon focus. If it's not focus, then you lower all maximized windows to get them under tiled ones. So you basically implements two layers of windows: tiled/maximized ? Not against it, this does not seem bad but seems to be a very personal choice. Cheers, -- Julien Danjou // ᐰ <[EMAIL PROTECTED]> http://julien.danjou.info // 9A0D 5FD9 EB42 22F6 8974 C95C A462 B51E C2FE E5CD
signature.asc
Description: Digital signature