switcher cycle windows
This commit is contained in:
parent
4b517f1f6a
commit
d868c6e7d6
29
switcher.lua
29
switcher.lua
|
@ -57,6 +57,9 @@ local function start(c)
|
||||||
})
|
})
|
||||||
infobox.visible = true
|
infobox.visible = true
|
||||||
|
|
||||||
|
local tablist = nil
|
||||||
|
local tablist_index = nil
|
||||||
|
|
||||||
local traverse_x = c.x
|
local traverse_x = c.x
|
||||||
local traverse_y = c.y
|
local traverse_y = c.y
|
||||||
|
|
||||||
|
@ -101,8 +104,25 @@ local function start(c)
|
||||||
kg = keygrabber.run(
|
kg = keygrabber.run(
|
||||||
function (mod, key, event)
|
function (mod, key, event)
|
||||||
if event == "release" then return end
|
if event == "release" then return end
|
||||||
|
if key == "Tab" then
|
||||||
|
if tablist == nil then
|
||||||
|
tablist = {}
|
||||||
|
for _, tc in ipairs(screen.tiled_clients) do
|
||||||
|
if tc.machi_region == c.machi_region then
|
||||||
|
tablist[#tablist + 1] = tc
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if key == "Up" or key == "Down" or key == "Left" or key == "Right" then
|
tablist_index = 1
|
||||||
|
end
|
||||||
|
|
||||||
|
if #tablist > 0 then
|
||||||
|
tablist_index = tablist_index % #tablist + 1
|
||||||
|
c = tablist[tablist_index]
|
||||||
|
c:emit_signal("request::activate", "mouse.move", {raise=false})
|
||||||
|
c:raise()
|
||||||
|
end
|
||||||
|
elseif key == "Up" or key == "Down" or key == "Left" or key == "Right" then
|
||||||
local choice = nil
|
local choice = nil
|
||||||
local choice_value
|
local choice_value
|
||||||
local choice_x
|
local choice_x
|
||||||
|
@ -172,7 +192,8 @@ local function start(c)
|
||||||
-- move the focus
|
-- move the focus
|
||||||
for _, tc in ipairs(screen.tiled_clients) do
|
for _, tc in ipairs(screen.tiled_clients) do
|
||||||
if tc.machi_region == choice then
|
if tc.machi_region == choice then
|
||||||
api.client.focus = tc
|
c = tc
|
||||||
|
api.client.focus = c
|
||||||
move_traverse = true
|
move_traverse = true
|
||||||
break
|
break
|
||||||
end
|
end
|
||||||
|
@ -182,6 +203,8 @@ local function start(c)
|
||||||
if move_traverse then
|
if move_traverse then
|
||||||
traverse_x = choice_x
|
traverse_x = choice_x
|
||||||
traverse_y = choice_y
|
traverse_y = choice_y
|
||||||
|
|
||||||
|
tablist = nil
|
||||||
end
|
end
|
||||||
|
|
||||||
infobox.bgimage = draw_info
|
infobox.bgimage = draw_info
|
||||||
|
@ -189,6 +212,8 @@ local function start(c)
|
||||||
elseif key == "Escape" or key == "Return" then
|
elseif key == "Escape" or key == "Return" then
|
||||||
infobox.visible = false
|
infobox.visible = false
|
||||||
keygrabber.stop(kg)
|
keygrabber.stop(kg)
|
||||||
|
else
|
||||||
|
print("Unhandled key " .. key)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
)
|
)
|
||||||
|
|
Loading…
Reference in New Issue