mirror of
https://github.com/awesomeWM/awesome
synced 2024-11-17 07:47:41 +01:00
client: deprecate client_get() and client_set()
Signed-off-by: Julien Danjou <julien@danjou.info>
This commit is contained in:
parent
125c259204
commit
c2f8275bf8
6 changed files with 104 additions and 45 deletions
|
@ -106,7 +106,7 @@ mytaglist.label = awful.widget.taglist.label.all
|
|||
|
||||
-- Create a tasklist widget
|
||||
mytasklist = widget({ type = "tasklist", name = "mytasklist" })
|
||||
mytasklist:mouse_add(mouse({ }, 1, function (object, c) c:focus_set(); c:raise() end))
|
||||
mytasklist:mouse_add(mouse({ }, 1, function (object, c) client.focus = c; c:raise() end))
|
||||
mytasklist:mouse_add(mouse({ }, 4, function () awful.client.focusbyidx(1) end))
|
||||
mytasklist:mouse_add(mouse({ }, 5, function () awful.client.focusbyidx(-1) end))
|
||||
mytasklist.label = awful.widget.tasklist.label.currenttags
|
||||
|
@ -187,7 +187,7 @@ for i = 1, keynumber do
|
|||
end):add()
|
||||
keybinding({ modkey, "Shift" }, i,
|
||||
function ()
|
||||
local sel = client.focus_get()
|
||||
local sel = client.focus
|
||||
if sel then
|
||||
if tags[sel.screen][i] then
|
||||
awful.client.movetotag(tags[sel.screen][i])
|
||||
|
@ -196,7 +196,7 @@ for i = 1, keynumber do
|
|||
end):add()
|
||||
keybinding({ modkey, "Control", "Shift" }, i,
|
||||
function ()
|
||||
local sel = client.focus_get()
|
||||
local sel = client.focus
|
||||
if sel then
|
||||
if tags[sel.screen][i] then
|
||||
awful.client.toggletag(tags[sel.screen][i])
|
||||
|
@ -217,15 +217,15 @@ keybinding({ modkey, "Shift" }, "q", awesome.quit):add()
|
|||
|
||||
-- Client manipulation
|
||||
keybinding({ modkey }, "m", awful.client.maximize):add()
|
||||
keybinding({ modkey, "Shift" }, "c", function () client.focus_get():kill() end):add()
|
||||
keybinding({ modkey }, "j", function () awful.client.focusbyidx(1); client.focus_get():raise() end):add()
|
||||
keybinding({ modkey }, "k", function () awful.client.focusbyidx(-1); client.focus_get():raise() end):add()
|
||||
keybinding({ modkey, "Shift" }, "c", function () client.focus:kill() end):add()
|
||||
keybinding({ modkey }, "j", function () awful.client.focusbyidx(1); client.focus:raise() end):add()
|
||||
keybinding({ modkey }, "k", function () awful.client.focusbyidx(-1); client.focus:raise() end):add()
|
||||
keybinding({ modkey, "Shift" }, "j", function () awful.client.swap(1) end):add()
|
||||
keybinding({ modkey, "Shift" }, "k", function () awful.client.swap(-1) end):add()
|
||||
keybinding({ modkey, "Control" }, "j", function () awful.screen.focus(1) end):add()
|
||||
keybinding({ modkey, "Control" }, "k", function () awful.screen.focus(-1) end):add()
|
||||
keybinding({ modkey, "Control" }, "space", awful.client.togglefloating):add()
|
||||
keybinding({ modkey, "Control" }, "Return", function () client.focus_get():swap(awful.client.master()) end):add()
|
||||
keybinding({ modkey, "Control" }, "Return", function () client.focus:swap(awful.client.master()) end):add()
|
||||
keybinding({ modkey }, "o", awful.client.movetoscreen):add()
|
||||
keybinding({ modkey }, "Tab", awful.client.focus.history.previous):add()
|
||||
|
||||
|
@ -259,7 +259,7 @@ keybinding({ modkey, "Control" }, "y", function ()
|
|||
tabbedview = tabulous.tab_create()
|
||||
tabulous.tab(tabbedview, nextclient)
|
||||
else
|
||||
tabulous.tab(tabbedview, client.focus_get())
|
||||
tabulous.tab(tabbedview, client.focus)
|
||||
end
|
||||
else
|
||||
tabulous.tab(tabbedview, nextclient)
|
||||
|
@ -336,7 +336,7 @@ end
|
|||
function hook_mouseover(c)
|
||||
-- Sloppy focus, but disabled for magnifier layout
|
||||
if awful.layout.get(c.screen) ~= "magnifier" then
|
||||
c:focus_set()
|
||||
client.focus = c
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -349,14 +349,14 @@ function hook_manage(c)
|
|||
awful.titlebar.add(c, { modkey = modkey })
|
||||
end
|
||||
-- Add mouse bindings
|
||||
c:mouse_add(mouse({ }, 1, function (c) c:focus_set(); c:raise() end))
|
||||
c:mouse_add(mouse({ }, 1, function (c) client.focus = c; c:raise() end))
|
||||
c:mouse_add(mouse({ modkey }, 1, function (c) c:mouse_move() end))
|
||||
c:mouse_add(mouse({ modkey }, 3, function (c) c:mouse_resize() end))
|
||||
-- New client may not receive focus
|
||||
-- if they're not focusable, so set border anyway.
|
||||
c.border_width = beautiful.border_width
|
||||
c.border_color = beautiful.border_normal
|
||||
c:focus_set()
|
||||
client.focus = c
|
||||
|
||||
-- Check if the application should be floating.
|
||||
local cls = c.class
|
||||
|
@ -395,14 +395,14 @@ function hook_arrange(screen)
|
|||
end
|
||||
|
||||
-- If no window has focus, give focus to the latest in history
|
||||
if not client.focus_get() then
|
||||
if not client.focus then
|
||||
local c = awful.client.focus.history.get(screen, 0)
|
||||
if c then c:focus_set() end
|
||||
if c then client.focus = c end
|
||||
end
|
||||
|
||||
-- Uncomment if you want mouse warping
|
||||
--[[
|
||||
local sel = client.focus_get()
|
||||
local sel = client.focus
|
||||
if sel then
|
||||
local c_c = sel.coords
|
||||
local m_c = mouse.coords
|
||||
|
|
|
@ -79,10 +79,12 @@ for i, line in ipairs(ilines) do
|
|||
if not libname and line:find("^luaA_.*_index") then
|
||||
local fctname, fctdef
|
||||
_, _, fctdef, fctname = line:find("^(luaA_(.+)_index)")
|
||||
print(function_doc[fctdef]:comment_translate())
|
||||
print("-- @class table")
|
||||
print("-- @name " .. fctname)
|
||||
print(fctname)
|
||||
if function_doc[fctdef] and not fctdef:find("_module_") then
|
||||
print(function_doc[fctdef]:comment_translate())
|
||||
print("-- @class table")
|
||||
print("-- @name " .. fctname)
|
||||
print(fctname)
|
||||
end
|
||||
end
|
||||
else
|
||||
if line:find("};") then
|
||||
|
|
58
client.c
58
client.c
|
@ -914,7 +914,7 @@ luaA_client_visible_get(lua_State *L)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/** Get the currently focused client.
|
||||
/** Get the currently focused client (DEPRECATED).
|
||||
* \param L The Lua VM state.
|
||||
* \luastack
|
||||
* \lreturn The currently focused client.
|
||||
|
@ -924,6 +924,7 @@ luaA_client_focus_get(lua_State *L)
|
|||
{
|
||||
if(globalconf.screen_focus->client_focus)
|
||||
return luaA_client_userdata_new(L, globalconf.screen_focus->client_focus);
|
||||
deprecate();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -982,7 +983,7 @@ luaA_client_swap(lua_State *L)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/** Focus a client.
|
||||
/** Focus a client (DEPRECATED).
|
||||
* \param L The Lua VM state.
|
||||
*
|
||||
* \luastack
|
||||
|
@ -993,6 +994,7 @@ luaA_client_focus_set(lua_State *L)
|
|||
{
|
||||
client_t **c = luaA_checkudata(L, 1, "client");
|
||||
client_focus(*c);
|
||||
deprecate();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -1208,6 +1210,7 @@ luaA_client_newindex(lua_State *L)
|
|||
* \lfield titlebar The client titlebar.
|
||||
* \lfield urgent The client urgent state.
|
||||
* \lfield tags The clients tags.
|
||||
* \lfield focus The focused client.
|
||||
*/
|
||||
static int
|
||||
luaA_client_index(lua_State *L)
|
||||
|
@ -1334,11 +1337,62 @@ luaA_client_index(lua_State *L)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/* Client module.
|
||||
* \param L The Lua VM state.
|
||||
* \return The number of pushed elements.
|
||||
*/
|
||||
static int
|
||||
luaA_client_module_index(lua_State *L)
|
||||
{
|
||||
size_t len;
|
||||
const char *buf = luaL_checklstring(L, 2, &len);
|
||||
|
||||
switch(a_tokenize(buf, len))
|
||||
{
|
||||
case A_TK_FOCUS:
|
||||
if(globalconf.screen_focus->client_focus)
|
||||
luaA_client_userdata_new(L, globalconf.screen_focus->client_focus);
|
||||
else
|
||||
return 0;
|
||||
break;
|
||||
default:
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* Client module new index.
|
||||
* \param L The Lua VM state.
|
||||
* \return The number of pushed elements.
|
||||
*/
|
||||
static int
|
||||
luaA_client_module_newindex(lua_State *L)
|
||||
{
|
||||
size_t len;
|
||||
const char *buf = luaL_checklstring(L, 2, &len);
|
||||
client_t **c;
|
||||
|
||||
switch(a_tokenize(buf, len))
|
||||
{
|
||||
case A_TK_FOCUS:
|
||||
c = luaA_checkudata(L, 3, "client");
|
||||
client_focus(*c);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
const struct luaL_reg awesome_client_methods[] =
|
||||
{
|
||||
{ "get", luaA_client_get },
|
||||
{ "focus_get", luaA_client_focus_get },
|
||||
{ "visible_get", luaA_client_visible_get },
|
||||
{ "__index", luaA_client_module_index },
|
||||
{ "__newindex", luaA_client_module_newindex },
|
||||
{ NULL, NULL }
|
||||
};
|
||||
const struct luaL_reg awesome_client_meta[] =
|
||||
|
|
|
@ -123,7 +123,7 @@ end
|
|||
|
||||
--- Focus the previous client in history.
|
||||
function client.focus.history.previous()
|
||||
local sel = capi.client.focus_get()
|
||||
local sel = capi.client.focus
|
||||
local s
|
||||
if sel then
|
||||
s = sel.screen
|
||||
|
@ -131,7 +131,7 @@ function client.focus.history.previous()
|
|||
s = capi.mouse.screen
|
||||
end
|
||||
local c = client.focus.history.get(s, 1)
|
||||
if c then c:focus_set() end
|
||||
if c then capi.client.focus = c end
|
||||
end
|
||||
|
||||
--- Get a client by its relative index to the focused window.
|
||||
|
@ -141,7 +141,7 @@ end
|
|||
-- @return A client, or nil if no client is available.
|
||||
function client.next(i, c)
|
||||
-- Get currently focused client
|
||||
local sel = c or capi.client.focus_get()
|
||||
local sel = c or capi.client.focus
|
||||
if sel then
|
||||
-- Get all visible clients
|
||||
local cls = capi.client.visible_get(sel.screen)
|
||||
|
@ -206,7 +206,7 @@ end
|
|||
-- @param dir The direction, can be either "up", "down", "left" or "right".
|
||||
-- @param c Optional client.
|
||||
function client.focusbydirection(dir, c)
|
||||
local sel = c or capi.client.focus_get()
|
||||
local sel = c or capi.client.focus
|
||||
if sel then
|
||||
local coords = sel.coords
|
||||
local dist, dist_min
|
||||
|
@ -231,7 +231,7 @@ function client.focusbydirection(dir, c)
|
|||
|
||||
-- If we found a client to focus, then do it.
|
||||
if target then
|
||||
target:focus_set()
|
||||
capi.client.focus = target
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@ -242,7 +242,7 @@ end
|
|||
function client.focusbyidx(i, c)
|
||||
local target = client.next(i, c)
|
||||
if target then
|
||||
target:focus_set()
|
||||
capi.client.focus = target
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -250,7 +250,7 @@ end
|
|||
-- @param i The index.
|
||||
-- @param c Optional client, otherwise focused one is used.
|
||||
function client.swap(i, c)
|
||||
local sel = c or capi.client.focus_get()
|
||||
local sel = c or capi.client.focus
|
||||
local target = client.next(i, sel)
|
||||
if target then
|
||||
target:swap(sel)
|
||||
|
@ -272,7 +272,7 @@ end
|
|||
-- @param h The relative height.
|
||||
-- @param c The optional client, otherwise focused one is used.
|
||||
function client.moveresize(x, y, w, h, c)
|
||||
local sel = c or capi.client.focus_get()
|
||||
local sel = c or capi.client.focus
|
||||
local coords = sel.coords
|
||||
coords['x'] = coords['x'] + x
|
||||
coords['y'] = coords['y'] + y
|
||||
|
@ -284,7 +284,7 @@ end
|
|||
--- Maximize a client to use the full workarea.
|
||||
-- @param c A client, or the focused one if nil.
|
||||
function client.maximize(c)
|
||||
local sel = c or capi.client.focus_get()
|
||||
local sel = c or capi.client.focus
|
||||
if sel then
|
||||
local ws = capi.screen[sel.screen].workarea
|
||||
ws.width = ws.width - 2 * sel.border_width
|
||||
|
@ -317,7 +317,7 @@ end
|
|||
--- Give the focus to a screen, and move pointer.
|
||||
-- @param Screen number.
|
||||
function screen.focus(i)
|
||||
local sel = capi.client.focus_get()
|
||||
local sel = capi.client.focus
|
||||
local s
|
||||
if sel then
|
||||
s = sel.screen
|
||||
|
@ -326,7 +326,7 @@ function screen.focus(i)
|
|||
end
|
||||
s = cycle(capi.screen.count(), s + i)
|
||||
local c = client.focus.history.get(s, 0)
|
||||
if c then c:focus_set() end
|
||||
if c then capi.client.focus = c end
|
||||
-- Move the mouse on the screen
|
||||
capi.mouse.coords = capi.screen[s].coords
|
||||
end
|
||||
|
@ -508,7 +508,7 @@ end
|
|||
-- @param target The tag to move the client to.
|
||||
-- @para c Optional client to move, otherwise the focused one is used.
|
||||
function client.movetotag(target, c)
|
||||
local sel = c or capi.client.focus_get();
|
||||
local sel = c or capi.client.focus
|
||||
if sel then
|
||||
-- Check that tag and client screen are identical
|
||||
if sel.screen ~= target.screen then return end
|
||||
|
@ -521,7 +521,7 @@ end
|
|||
-- @param target The tag to toggle.
|
||||
-- @param c Optional client to toggle, otherwise the focused one is used.
|
||||
function client.toggletag(target, c)
|
||||
local sel = c or capi.client.focus_get();
|
||||
local sel = c or capi.client.focus
|
||||
-- Check that tag and client screen are identical
|
||||
if sel and sel.screen == target.screen then
|
||||
local tags = sel.tags
|
||||
|
@ -537,7 +537,7 @@ end
|
|||
--- Toggle the floating status of a client.
|
||||
-- @param c Optional client, the focused on if not set.
|
||||
function client.togglefloating(c)
|
||||
local sel = c or capi.client.focus_get();
|
||||
local sel = c or capi.client.focus
|
||||
if sel then
|
||||
sel.floating = not sel.floating
|
||||
end
|
||||
|
@ -547,7 +547,7 @@ end
|
|||
-- @param c The client to move.
|
||||
-- @param s The screen number, default to current + 1.
|
||||
function client.movetoscreen(c, s)
|
||||
local sel = c or capi.client.focus_get();
|
||||
local sel = c or capi.client.focus
|
||||
if sel then
|
||||
local sc = capi.screen.count()
|
||||
if not s then
|
||||
|
@ -556,7 +556,7 @@ function client.movetoscreen(c, s)
|
|||
if s > sc then s = 1 elseif s < 1 then s = sc end
|
||||
sel.screen = s
|
||||
capi.mouse.coords = capi.screen[s].coords
|
||||
sel:focus_set()
|
||||
capi.client.focus = sel
|
||||
end
|
||||
end
|
||||
|
||||
|
@ -604,7 +604,7 @@ hooks.user.create('unmarked')
|
|||
-- @param c The client to mark, the focused one if not specified.
|
||||
-- @return True if the client has been marked. False if the client was already marked.
|
||||
function client.mark (c)
|
||||
local cl = c or capi.client.focus_get()
|
||||
local cl = c or capi.client.focus
|
||||
if cl then
|
||||
for k, v in pairs(awfulmarked) do
|
||||
if cl == v then
|
||||
|
@ -624,7 +624,7 @@ end
|
|||
-- @param c The client to unmark, or the focused one if not specified.
|
||||
-- @return True if the client has been unmarked. False if the client was not marked.
|
||||
function client.unmark(c)
|
||||
local cl = c or capi.client.focus_get()
|
||||
local cl = c or capi.client.focus
|
||||
|
||||
for k, v in pairs(awfulmarked) do
|
||||
if cl == v then
|
||||
|
@ -640,7 +640,7 @@ end
|
|||
--- Check if a client is marked.
|
||||
-- @param c The client to check, or the focused one otherwise.
|
||||
function client.ismarked(c)
|
||||
local cl = c or capi.client.focus_get()
|
||||
local cl = c or capi.client.focus
|
||||
if cl then
|
||||
for k, v in pairs(awfulmarked) do
|
||||
if cl == v then
|
||||
|
@ -654,7 +654,7 @@ end
|
|||
--- Toggle a client as marked.
|
||||
-- @param c The client to toggle mark.
|
||||
function client.togglemarked(c)
|
||||
local cl = c or capi.client.focus_get()
|
||||
local cl = c or capi.client.focus
|
||||
|
||||
if not client.mark(c) then
|
||||
client.unmark(c)
|
||||
|
@ -1151,7 +1151,7 @@ function widget.taglist.label.all(t, args)
|
|||
local bg_urgent = args.bg_urgent or theme.bg_urgent
|
||||
local text
|
||||
local background = ""
|
||||
local sel = capi.client.focus_get()
|
||||
local sel = capi.client.focus
|
||||
local bg_color = nil
|
||||
local fg_color = nil
|
||||
if t.selected then
|
||||
|
@ -1237,7 +1237,7 @@ local function widget_tasklist_label_common(c, args)
|
|||
else
|
||||
name = escape(c.name)
|
||||
end
|
||||
if capi.client.focus_get() == c then
|
||||
if capi.client.focus == c then
|
||||
text = text .. " <bg color='"..bg_focus.."'/><span color='"..fg_focus.."'>"..name.."</span> "
|
||||
elseif c.urgent and bg_urgent and fg_urgent then
|
||||
text = text .. " <bg color='"..bg_urgent.."'/><span color='"..fg_urgent.."'>"..name.."</span> "
|
||||
|
@ -1358,7 +1358,7 @@ function titlebar.update(c)
|
|||
if title then
|
||||
title.text = " " .. escape(c.name)
|
||||
end
|
||||
if capi.client.focus_get() == c then
|
||||
if capi.client.focus == c then
|
||||
c.titlebar.fg = titlebar.data[c].fg_focus
|
||||
c.titlebar.bg = titlebar.data[c].bg_focus
|
||||
if close then
|
||||
|
|
4
lua.h
4
lua.h
|
@ -39,6 +39,10 @@ typedef enum
|
|||
/** Type for Lua function */
|
||||
typedef int luaA_ref;
|
||||
|
||||
#define deprecate(string, ...) _warn(__LINE__, \
|
||||
__FUNCTION__, \
|
||||
"This function is deprecated and will be removed.")
|
||||
|
||||
#define DO_LUA_NEW(decl, type, prefix, lua_type, type_ref) \
|
||||
decl int \
|
||||
luaA_##prefix##_userdata_new(lua_State *L, type *p) \
|
||||
|
|
3
screen.c
3
screen.c
|
@ -219,8 +219,7 @@ screen_client_moveto(client_t *c, int new_screen, bool doresize)
|
|||
* \param L The Lua VM state.
|
||||
* \return The number of elements pushed on stack.
|
||||
* \luastack
|
||||
* \lfield coords The screen coordinates.
|
||||
* \lfield padding The screen padding.
|
||||
* \lfield number The screen number, to get a screen.
|
||||
*/
|
||||
static int
|
||||
luaA_screen_module_index(lua_State *L)
|
||||
|
|
Loading…
Reference in a new issue