awful.screen: Save last mouse position as screen property
Instead of using a weak table to save the last mouse position, this is now saved directly as a property under the screen. Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
parent
3d048dca04
commit
4ef63d9416
|
@ -31,8 +31,6 @@ local screen = {object={}}
|
||||||
local data = {}
|
local data = {}
|
||||||
data.padding = {}
|
data.padding = {}
|
||||||
|
|
||||||
screen.mouse_per_screen = setmetatable({}, {__mode="k"})
|
|
||||||
|
|
||||||
--- Take an input geometry and substract/add a delta.
|
--- Take an input geometry and substract/add a delta.
|
||||||
-- @tparam table geo A geometry (width, height, x, y) table.
|
-- @tparam table geo A geometry (width, height, x, y) table.
|
||||||
-- @tparam table delta A delta table (top, bottom, x, y).
|
-- @tparam table delta A delta table (top, bottom, x, y).
|
||||||
|
@ -99,7 +97,7 @@ function screen.focus(_screen)
|
||||||
local s = get_screen(capi.mouse.screen)
|
local s = get_screen(capi.mouse.screen)
|
||||||
local pos
|
local pos
|
||||||
|
|
||||||
if not screen.mouse_per_screen[_screen] then
|
if not _screen.mouse_per_screen then
|
||||||
-- This is the first time we enter this screen,
|
-- This is the first time we enter this screen,
|
||||||
-- keep relative mouse position on the new screen.
|
-- keep relative mouse position on the new screen.
|
||||||
pos = capi.mouse.coords()
|
pos = capi.mouse.coords()
|
||||||
|
@ -110,11 +108,11 @@ function screen.focus(_screen)
|
||||||
pos.y = _screen.geometry.y + rely * _screen.geometry.height
|
pos.y = _screen.geometry.y + rely * _screen.geometry.height
|
||||||
else
|
else
|
||||||
-- restore mouse position
|
-- restore mouse position
|
||||||
pos = screen.mouse_per_screen[_screen]
|
pos = _screen.mouse_per_screen
|
||||||
end
|
end
|
||||||
|
|
||||||
-- save pointer position of current screen
|
-- save pointer position of current screen
|
||||||
screen.mouse_per_screen[s] = capi.mouse.coords()
|
s.mouse_per_screen = capi.mouse.coords()
|
||||||
|
|
||||||
-- move cursor without triggering signals mouse::enter and mouse::leave
|
-- move cursor without triggering signals mouse::enter and mouse::leave
|
||||||
capi.mouse.coords(pos, true)
|
capi.mouse.coords(pos, true)
|
||||||
|
|
Loading…
Reference in New Issue