Remove awful.mouse.finder
This module is partly broken since 2009 (the way to use it that is mentioned in the docs doesn't actually work) because the mousefinder object doesn't have a find()-method (the line doing "self.find = find" should do "self.finder = finder.find"). Since no one really noticed, this module is apparently not used much. When someone wants to still use this, they are free to copy this to their own config. It's not much code, but it's enough code that I am annoyed that we ship something broken to users. Everyone who copies it to their own config will make sure it works the way they want. Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
parent
66b93ffded
commit
a0d4d729d3
|
@ -1,167 +0,0 @@
|
|||
-------------------------------------------------------------------------
|
||||
--- Mouse finder for awful
|
||||
--
|
||||
-- Find the mouse pointer on the screen.
|
||||
-- Mouse finder highlights the mouse cursor on the screen
|
||||
-- To enable this feature, a `awful.mouse.finder` object needs to be bound to a
|
||||
-- key:
|
||||
--
|
||||
-- mymousefinder = awful.mouse.finder()
|
||||
--
|
||||
-- Then bind the `find` function a key binding.
|
||||
--
|
||||
-- Some configuration variable can be set in the theme:
|
||||
--
|
||||
-- The mouse_finder display duration
|
||||
--
|
||||
-- theme.mouse_finder_timeout = 3
|
||||
--
|
||||
-- The animation speed
|
||||
--
|
||||
-- theme.mouse_finder_animate_timeout = 0.05
|
||||
--
|
||||
-- The mouse_finder radius
|
||||
--
|
||||
-- theme.mouse_finder_radius = 20
|
||||
--
|
||||
-- The growth factor
|
||||
--
|
||||
-- theme.mouse_finder_factor = 2
|
||||
--
|
||||
-- The mouse_finder color
|
||||
--
|
||||
-- theme.mouse_finder_color = "#ff0000"
|
||||
--
|
||||
-- @author Sébastien Gross <seb•ɱɩɲʋʃ•awesome•ɑƬ•chezwam•ɖɵʈ•org>
|
||||
-- @copyright 2009 Sébastien Gross
|
||||
-- @release @AWESOME_VERSION@
|
||||
-- @module awful.mouse.finder
|
||||
-------------------------------------------------------------------------
|
||||
|
||||
local timer = require("gears.timer")
|
||||
local wibox = require("wibox")
|
||||
local a_placement = require("awful.placement")
|
||||
local beautiful = require("beautiful")
|
||||
local setmetatable = setmetatable
|
||||
|
||||
local finder = { mt = {} }
|
||||
|
||||
--- Mouse finder private data.
|
||||
-- @table data
|
||||
-- @field color Background color.
|
||||
-- @field hide The hide() function.
|
||||
-- @field show The show() function.
|
||||
-- @field timer Timer to hide the mouse finder.
|
||||
-- @field animate_timer Timer to animate the mouse finder.
|
||||
-- @field wibox The mouse finder wibox show on the screen.
|
||||
local data = setmetatable({}, { __mode = 'k' })
|
||||
|
||||
--- Place a mouse finder on the screen.
|
||||
-- @param self A mouse finder object.
|
||||
local function place(self)
|
||||
a_placement.under_mouse(data[self].wibox)
|
||||
a_placement.no_offscreen(data[self].wibox)
|
||||
end
|
||||
|
||||
--- Animate a mouse finder.
|
||||
-- @param self A mouse finder object.
|
||||
local function animate(self)
|
||||
local r = data[self].wibox:geometry().width
|
||||
-- Check if the object should be grown or shrinked
|
||||
-- the minimum radius is -data[self].factor because:
|
||||
-- 1. factor is alway negative when shrinking
|
||||
-- 2. geometry() does not handle negative values
|
||||
if data[self].factor > 0 and r >= data[self].radius
|
||||
or data[self].factor < 0 and r <= -data[self].factor then
|
||||
data[self].factor = -data[self].factor
|
||||
end
|
||||
data[self].wibox:geometry({width = r + data[self].factor,
|
||||
height = r + data[self].factor })
|
||||
-- need -1 to the radius to draw a full circle
|
||||
-- FIXME: The rounded_corners() API was removed
|
||||
-- a_wibox.rounded_corners(data[self].wibox, (r + data[self].factor)/2 -1)
|
||||
-- make sure the mouse finder follows the pointer. Uh!
|
||||
place(self)
|
||||
end
|
||||
|
||||
|
||||
--- Show a mouse finder.
|
||||
-- @param self The mouse finder to show.
|
||||
local function show(self)
|
||||
-- do nothing if the mouse finder is already shown
|
||||
if data[self].wibox.visible then return end
|
||||
if not data[self].timer.started then
|
||||
data[self].wibox:geometry({width = data[self].radius, height = data[self].radius })
|
||||
-- FIXME: The rounded_corners() API was removed
|
||||
-- a_wibox.rounded_corners(data[self].wibox, data[self].radius/2 -1)
|
||||
data[self].timer:start()
|
||||
data[self].animate_timer:start()
|
||||
end
|
||||
place(self)
|
||||
data[self].wibox.visible = true
|
||||
end
|
||||
|
||||
--- Hide a mouse finder.
|
||||
-- @param self The mouse finder to hide.
|
||||
local function hide(self)
|
||||
-- do nothing if the mouse finder is already hidden
|
||||
if not data[self].wibox.visible then return end
|
||||
if data[self].timer.started then
|
||||
data[self].timer:stop()
|
||||
data[self].animate_timer:stop()
|
||||
end
|
||||
data[self].wibox.visible = false
|
||||
end
|
||||
|
||||
--- Load Default values.
|
||||
-- @param self A mouse finder object.
|
||||
local function set_defaults(self)
|
||||
data[self].wibox.border_width = 0
|
||||
data[self].wibox.opacity = beautiful.mouse_finder_opacity or 1
|
||||
data[self].wibox:set_bg(beautiful.mouse_finder_color or beautiful.bg_focus or "#ff0000")
|
||||
data[self].timeout = beautiful.mouse_finder_timeout or 3
|
||||
data[self].animate_timeout = beautiful.mouse_finder_animate_timeout or 0.05
|
||||
data[self].radius = beautiful.mouse_finder_radius or 20
|
||||
data[self].factor = beautiful.mouse_finder_factor or 2
|
||||
end
|
||||
|
||||
--- Find the mouse on the screen
|
||||
-- @param self A mouse finder object.
|
||||
function finder.find(self)
|
||||
show(self)
|
||||
end
|
||||
|
||||
--- Create a new mouse finder.
|
||||
local function new()
|
||||
local self = { }
|
||||
-- private data
|
||||
data[self] = {
|
||||
wibox = wibox({ }),
|
||||
show = function() show(self) end,
|
||||
hide = function() hide(self) end,
|
||||
animate = function() animate(self) end,
|
||||
}
|
||||
|
||||
-- export functions
|
||||
self.find = find
|
||||
|
||||
set_defaults(self)
|
||||
|
||||
-- setup the timer action only if needed
|
||||
data[self].timer = timer { timeout = data[self].timeout }
|
||||
data[self].animate_timer = timer { timeout = data[self].animate_timeout }
|
||||
data[self].timer:connect_signal("timeout", data[self].hide)
|
||||
data[self].animate_timer:connect_signal("timeout", data[self].animate)
|
||||
data[self].wibox.ontop = true
|
||||
data[self].wibox.visible = false
|
||||
|
||||
return self
|
||||
end
|
||||
|
||||
function finder.mt:__call(...)
|
||||
return new(...)
|
||||
end
|
||||
|
||||
return setmetatable(finder, finder.mt)
|
||||
|
||||
-- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80
|
|
@ -25,8 +25,6 @@ local capi =
|
|||
mousegrabber = mousegrabber,
|
||||
}
|
||||
|
||||
local finder = require("awful.mouse.finder")
|
||||
|
||||
local mouse = {}
|
||||
|
||||
mouse.client = {}
|
||||
|
|
Loading…
Reference in New Issue