client: add above and below to capi + related fixes

Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
Maarten Maathuis 2009-02-08 23:55:30 +01:00 committed by Julien Danjou
parent f24ddbd159
commit 8e58460109
2 changed files with 41 additions and 0 deletions

View File

@ -792,6 +792,10 @@ client_setfullscreen(client_t *c, bool s)
/* remove any max state */ /* remove any max state */
client_setmaxhoriz(c, false); client_setmaxhoriz(c, false);
client_setmaxvert(c, false); client_setmaxvert(c, false);
/* You can only be part of one of the special layers. */
client_setbelow(c, false);
client_setabove(c, false);
client_setontop(c, false);
geometry = screen_area_get(c->screen, NULL, NULL, false); geometry = screen_area_get(c->screen, NULL, NULL, false);
c->geometries.fullscreen = c->geometry; c->geometries.fullscreen = c->geometry;
@ -904,6 +908,13 @@ client_setabove(client_t *c, bool s)
{ {
if(c->isabove != s) if(c->isabove != s)
{ {
/* You can only be part of one of the special layers. */
if(s)
{
client_setbelow(c, false);
client_setontop(c, false);
client_setfullscreen(c, false);
}
c->isabove = s; c->isabove = s;
client_stack(); client_stack();
ewmh_client_update_hints(c); ewmh_client_update_hints(c);
@ -921,6 +932,13 @@ client_setbelow(client_t *c, bool s)
{ {
if(c->isbelow != s) if(c->isbelow != s)
{ {
/* You can only be part of one of the special layers. */
if(s)
{
client_setabove(c, false);
client_setontop(c, false);
client_setfullscreen(c, false);
}
c->isbelow = s; c->isbelow = s;
client_stack(); client_stack();
ewmh_client_update_hints(c); ewmh_client_update_hints(c);
@ -955,6 +973,13 @@ client_setontop(client_t *c, bool s)
{ {
if(c->isontop != s) if(c->isontop != s)
{ {
/* You can only be part of one of the special layers. */
if(s)
{
client_setabove(c, false);
client_setbelow(c, false);
client_setfullscreen(c, false);
}
c->isontop = s; c->isontop = s;
client_stack(); client_stack();
/* execute hook */ /* execute hook */
@ -1537,6 +1562,12 @@ luaA_client_newindex(lua_State *L)
case A_TK_ONTOP: case A_TK_ONTOP:
client_setontop(*c, luaA_checkboolean(L, 3)); client_setontop(*c, luaA_checkboolean(L, 3));
break; break;
case A_TK_ABOVE:
client_setabove(*c, luaA_checkboolean(L, 3));
break;
case A_TK_BELOW:
client_setbelow(*c, luaA_checkboolean(L, 3));
break;
case A_TK_BORDER_COLOR: case A_TK_BORDER_COLOR:
if((buf = luaL_checklstring(L, 3, &len)) if((buf = luaL_checklstring(L, 3, &len))
&& xcolor_init_reply(xcolor_init_unchecked(&(*c)->border_color, buf, len))) && xcolor_init_reply(xcolor_init_unchecked(&(*c)->border_color, buf, len)))
@ -1587,6 +1618,8 @@ luaA_client_newindex(lua_State *L)
* \lfield focus The focused client. * \lfield focus The focused client.
* \lfield opacity The client opacity between 0 and 1. * \lfield opacity The client opacity between 0 and 1.
* \lfield ontop The client is on top of every other windows. * \lfield ontop The client is on top of every other windows.
* \lfield above The client is above normal windows.
* \lfield below The client is below normal windows.
* \lfield fullscreen The client is fullscreen or not. * \lfield fullscreen The client is fullscreen or not.
* \lfield maximized_horizontal The client is maximized horizontally or not. * \lfield maximized_horizontal The client is maximized horizontally or not.
* \lfield maximized_vertical The client is maximized vertically or not. * \lfield maximized_vertical The client is maximized vertically or not.
@ -1752,6 +1785,12 @@ luaA_client_index(lua_State *L)
case A_TK_ONTOP: case A_TK_ONTOP:
lua_pushboolean(L, (*c)->isontop); lua_pushboolean(L, (*c)->isontop);
break; break;
case A_TK_ABOVE:
lua_pushboolean(L, (*c)->isabove);
break;
case A_TK_BELOW:
lua_pushboolean(L, (*c)->isbelow);
break;
case A_TK_STICKY: case A_TK_STICKY:
lua_pushboolean(L, (*c)->issticky); lua_pushboolean(L, (*c)->issticky);
break; break;

View File

@ -1,7 +1,9 @@
above
align align
alpha alpha
bar_data_add bar_data_add
bar_properties_set bar_properties_set
below
bg bg
bg_align bg_align
bg_image bg_image