mouse: Port wibox.move to the placement API
This commit is contained in:
parent
38185b161a
commit
4b395bea81
|
@ -10,7 +10,6 @@
|
||||||
-- Grab environment we need
|
-- Grab environment we need
|
||||||
local layout = require("awful.layout")
|
local layout = require("awful.layout")
|
||||||
local aplace = require("awful.placement")
|
local aplace = require("awful.placement")
|
||||||
local awibar = require("awful.wibar")
|
|
||||||
local util = require("awful.util")
|
local util = require("awful.util")
|
||||||
local type = type
|
local type = type
|
||||||
local ipairs = ipairs
|
local ipairs = ipairs
|
||||||
|
@ -123,43 +122,31 @@ end
|
||||||
|
|
||||||
--- Move the wibox under the cursor.
|
--- Move the wibox under the cursor.
|
||||||
-- @function awful.mouse.wibox.move
|
-- @function awful.mouse.wibox.move
|
||||||
--@param w The wibox to move, or none to use that under the pointer
|
--@tparam wibox w The wibox to move, or none to use that under the pointer
|
||||||
function mouse.wibox.move(w)
|
function mouse.wibox.move(w)
|
||||||
w = w or mouse.wibox_under_pointer()
|
w = w or mouse.wibox_under_pointer()
|
||||||
if not w then return end
|
if not w then return end
|
||||||
|
|
||||||
|
if not w
|
||||||
|
or w.type == "desktop"
|
||||||
|
or w.type == "splash"
|
||||||
|
or w.type == "dock" then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Compute the offset
|
||||||
|
local coords = capi.mouse.coords()
|
||||||
|
local geo = aplace.centered(capi.mouse,{parent=w, pretend=true})
|
||||||
|
|
||||||
local offset = {
|
local offset = {
|
||||||
x = w.x - capi.mouse.coords().x,
|
x = geo.x - coords.x,
|
||||||
y = w.y - capi.mouse.coords().y
|
y = geo.y - coords.y,
|
||||||
}
|
}
|
||||||
|
|
||||||
capi.mousegrabber.run(function (_mouse)
|
mouse.resize(w, "mouse.move", {
|
||||||
local button_down = false
|
placement = aplace.under_mouse,
|
||||||
if awibar.get_position(w) == "floating" then
|
offset = offset
|
||||||
w.x = capi.mouse.coords().x + offset.x
|
})
|
||||||
w.y = capi.mouse.coords().y + offset.y
|
|
||||||
else
|
|
||||||
local wa = capi.screen[capi.mouse.screen].workarea
|
|
||||||
|
|
||||||
if capi.mouse.coords()["y"] > wa.y + wa.height - 10 then
|
|
||||||
awibar.set_position(w, "bottom", w.screen)
|
|
||||||
elseif capi.mouse.coords()["y"] < wa.y + 10 then
|
|
||||||
awibar.set_position(w, "top", w.screen)
|
|
||||||
elseif capi.mouse.coords()["x"] > wa.x + wa.width - 10 then
|
|
||||||
awibar.set_position(w, "right", w.screen)
|
|
||||||
elseif capi.mouse.coords()["x"] < wa.x + 10 then
|
|
||||||
awibar.set_position(w, "left", w.screen)
|
|
||||||
end
|
|
||||||
w.screen = capi.mouse.screen
|
|
||||||
end
|
|
||||||
for _, v in ipairs(_mouse.buttons) do
|
|
||||||
if v then button_down = true end
|
|
||||||
end
|
|
||||||
if not button_down then
|
|
||||||
return false
|
|
||||||
end
|
|
||||||
return true
|
|
||||||
end, "fleur")
|
|
||||||
end
|
end
|
||||||
|
|
||||||
--- Get a client corner coordinates.
|
--- Get a client corner coordinates.
|
||||||
|
|
Loading…
Reference in New Issue