client: merge coords function into index
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
91656b0b29
commit
8646d06fab
|
@ -308,7 +308,7 @@ end
|
||||||
-- Hook function to execute when the mouse is over a client.
|
-- Hook function to execute when the mouse is over a client.
|
||||||
function hook_mouseover(c)
|
function hook_mouseover(c)
|
||||||
-- Sloppy focus, but disabled for magnifier layout
|
-- Sloppy focus, but disabled for magnifier layout
|
||||||
if awful.layout.get(c:screen_get()) ~= "magnifier" then
|
if awful.layout.get(c.screen) ~= "magnifier" then
|
||||||
c:focus_set()
|
c:focus_set()
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -341,7 +341,7 @@ function hook_arrange(screen)
|
||||||
--[[
|
--[[
|
||||||
local sel = client.focus_get()
|
local sel = client.focus_get()
|
||||||
if sel then
|
if sel then
|
||||||
local c_c = sel:coords_get()
|
local c_c = sel.coords
|
||||||
local m_c = mouse.coords_get()
|
local m_c = mouse.coords_get()
|
||||||
|
|
||||||
if m_c.x < c_c.x or m_c.x >= c_c.x + c_c.width or
|
if m_c.x < c_c.x or m_c.x >= c_c.x + c_c.width or
|
||||||
|
|
73
client.c
73
client.c
|
@ -1011,53 +1011,6 @@ luaA_client_istagged(lua_State *L)
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Get the client coordinates on the display.
|
|
||||||
* \param L The Lua VM state.
|
|
||||||
* \luastack
|
|
||||||
* \lvalue A client.
|
|
||||||
* \lreturn A table with keys `width', `height', `x' and `y'.
|
|
||||||
*/
|
|
||||||
static int
|
|
||||||
luaA_client_coords_get(lua_State *L)
|
|
||||||
{
|
|
||||||
client_t **c = luaA_checkudata(L, 1, "client");
|
|
||||||
lua_newtable(L);
|
|
||||||
lua_pushnumber(L, (*c)->geometry.width);
|
|
||||||
lua_setfield(L, -2, "width");
|
|
||||||
lua_pushnumber(L, (*c)->geometry.height);
|
|
||||||
lua_setfield(L, -2, "height");
|
|
||||||
lua_pushnumber(L, (*c)->geometry.x);
|
|
||||||
lua_setfield(L, -2, "x");
|
|
||||||
lua_pushnumber(L, (*c)->geometry.y);
|
|
||||||
lua_setfield(L, -2, "y");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Set client coordinates. This only operates if the client is floating.
|
|
||||||
* \param L The Lua VM state.
|
|
||||||
* \luastack
|
|
||||||
* \lvalue A client.
|
|
||||||
* \lparam A table with keys: x, y, width, height.
|
|
||||||
*/
|
|
||||||
static int
|
|
||||||
luaA_client_coords_set(lua_State *L)
|
|
||||||
{
|
|
||||||
client_t **c = luaA_checkudata(L, 1, "client");
|
|
||||||
area_t geometry;
|
|
||||||
|
|
||||||
if((*c)->isfloating || layout_get_current((*c)->screen) == layout_floating)
|
|
||||||
{
|
|
||||||
luaA_checktable(L, 2);
|
|
||||||
geometry.x = luaA_getopt_number(L, 2, "x", (*c)->geometry.x);
|
|
||||||
geometry.y = luaA_getopt_number(L, 2, "y", (*c)->geometry.y);
|
|
||||||
geometry.width = luaA_getopt_number(L, 2, "width", (*c)->geometry.width);
|
|
||||||
geometry.height = luaA_getopt_number(L, 2, "height", (*c)->geometry.height);
|
|
||||||
client_resize(*c, geometry, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
/** Kill a client.
|
/** Kill a client.
|
||||||
* \param L The Lua VM state.
|
* \param L The Lua VM state.
|
||||||
*
|
*
|
||||||
|
@ -1294,6 +1247,18 @@ luaA_client_newindex(lua_State *L)
|
||||||
xcb_change_window_attributes(globalconf.connection, (*c)->win, XCB_CW_BORDER_PIXEL, &color.pixel);
|
xcb_change_window_attributes(globalconf.connection, (*c)->win, XCB_CW_BORDER_PIXEL, &color.pixel);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case A_TK_COORDS:
|
||||||
|
if((*c)->isfloating || layout_get_current((*c)->screen) == layout_floating)
|
||||||
|
{
|
||||||
|
area_t geometry;
|
||||||
|
luaA_checktable(L, 3);
|
||||||
|
geometry.x = luaA_getopt_number(L, 3, "x", (*c)->geometry.x);
|
||||||
|
geometry.y = luaA_getopt_number(L, 3, "y", (*c)->geometry.y);
|
||||||
|
geometry.width = luaA_getopt_number(L, 3, "width", (*c)->geometry.width);
|
||||||
|
geometry.height = luaA_getopt_number(L, 3, "height", (*c)->geometry.height);
|
||||||
|
client_resize(*c, geometry, false);
|
||||||
|
}
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1355,6 +1320,18 @@ luaA_client_index(lua_State *L)
|
||||||
break;
|
break;
|
||||||
case A_TK_BORDER_COLOR:
|
case A_TK_BORDER_COLOR:
|
||||||
lua_pushstring(L, (*c)->border_color.name);
|
lua_pushstring(L, (*c)->border_color.name);
|
||||||
|
break;
|
||||||
|
case A_TK_COORDS:
|
||||||
|
lua_newtable(L);
|
||||||
|
lua_pushnumber(L, (*c)->geometry.width);
|
||||||
|
lua_setfield(L, -2, "width");
|
||||||
|
lua_pushnumber(L, (*c)->geometry.height);
|
||||||
|
lua_setfield(L, -2, "height");
|
||||||
|
lua_pushnumber(L, (*c)->geometry.x);
|
||||||
|
lua_setfield(L, -2, "x");
|
||||||
|
lua_pushnumber(L, (*c)->geometry.y);
|
||||||
|
lua_setfield(L, -2, "y");
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -1375,8 +1352,6 @@ const struct luaL_reg awesome_client_meta[] =
|
||||||
{ "titlebar_get", luaA_client_titlebar_get },
|
{ "titlebar_get", luaA_client_titlebar_get },
|
||||||
{ "tag", luaA_client_tag },
|
{ "tag", luaA_client_tag },
|
||||||
{ "istagged", luaA_client_istagged },
|
{ "istagged", luaA_client_istagged },
|
||||||
{ "coords_get", luaA_client_coords_get },
|
|
||||||
{ "coords_set", luaA_client_coords_set },
|
|
||||||
{ "kill", luaA_client_kill },
|
{ "kill", luaA_client_kill },
|
||||||
{ "swap", luaA_client_swap },
|
{ "swap", luaA_client_swap },
|
||||||
{ "focus_set", luaA_client_focus_set },
|
{ "focus_set", luaA_client_focus_set },
|
||||||
|
|
|
@ -14,6 +14,7 @@ bottomright
|
||||||
center
|
center
|
||||||
class
|
class
|
||||||
color
|
color
|
||||||
|
coords
|
||||||
fg
|
fg
|
||||||
flex
|
flex
|
||||||
floating
|
floating
|
||||||
|
|
|
@ -129,12 +129,12 @@ end
|
||||||
-- @param c The optional client, otherwise focused one is used.
|
-- @param c The optional client, otherwise focused one is used.
|
||||||
function P.client.moveresize(x, y, w, h, c)
|
function P.client.moveresize(x, y, w, h, c)
|
||||||
local sel = c or client.focus_get()
|
local sel = c or client.focus_get()
|
||||||
local coords = sel:coords_get()
|
local coords = sel.coords
|
||||||
coords['x'] = coords['x'] + x
|
coords['x'] = coords['x'] + x
|
||||||
coords['y'] = coords['y'] + y
|
coords['y'] = coords['y'] + y
|
||||||
coords['width'] = coords['width'] + w
|
coords['width'] = coords['width'] + w
|
||||||
coords['height'] = coords['height'] + h
|
coords['height'] = coords['height'] + h
|
||||||
sel:coords_set(coords)
|
sel.coords = coords
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Give the focus to a screen, and move pointer.
|
--- Give the focus to a screen, and move pointer.
|
||||||
|
|
Loading…
Reference in New Issue