diff options
Diffstat (limited to 'awesome/lib/awful/layout/suit/magnifier.lua')
-rw-r--r-- | awesome/lib/awful/layout/suit/magnifier.lua | 147 |
1 files changed, 0 insertions, 147 deletions
diff --git a/awesome/lib/awful/layout/suit/magnifier.lua b/awesome/lib/awful/layout/suit/magnifier.lua deleted file mode 100644 index f30d7ee..0000000 --- a/awesome/lib/awful/layout/suit/magnifier.lua +++ /dev/null @@ -1,147 +0,0 @@ ---------------------------------------------------------------------------- ---- Magnifier layout module for awful --- --- @author Julien Danjou <julien@danjou.info> --- @copyright 2008 Julien Danjou --- @module awful.layout ---------------------------------------------------------------------------- - --- Grab environment we need -local ipairs = ipairs -local math = math -local capi = -{ - client = client, - screen = screen, - mouse = mouse, - mousegrabber = mousegrabber -} - ---- The magnifier layout layoutbox icon. --- @beautiful beautiful.layout_magnifier --- @param surface --- @see gears.surface - -local magnifier = {} - -function magnifier.mouse_resize_handler(c, corner, x, y) - capi.mouse.coords({ x = x, y = y }) - - local wa = c.screen.workarea - local center_x = wa.x + wa.width / 2 - local center_y = wa.y + wa.height / 2 - local maxdist_pow = (wa.width^2 + wa.height^2) / 4 - - local prev_coords = {} - capi.mousegrabber.run(function (_mouse) - if not c.valid then return false end - - for _, v in ipairs(_mouse.buttons) do - if v then - prev_coords = { x =_mouse.x, y = _mouse.y } - local dx = center_x - _mouse.x - local dy = center_y - _mouse.y - local dist = dx^2 + dy^2 - - -- New master width factor - local mwfact = dist / maxdist_pow - c.screen.selected_tag.master_width_factor - = math.min(math.max(0.01, mwfact), 0.99) - return true - end - end - return prev_coords.x == _mouse.x and prev_coords.y == _mouse.y - end, corner .. "_corner") -end - -function magnifier.arrange(p) - -- Fullscreen? - local area = p.workarea - local cls = p.clients - local focus = p.focus or capi.client.focus - local t = p.tag or capi.screen[p.screen].selected_tag - local mwfact = t.master_width_factor - local fidx - - -- Check that the focused window is on the right screen - if focus and focus.screen ~= p.screen then focus = nil end - - -- If no window is focused or focused window is not tiled, take the first tiled one. - if (not focus or focus.floating) and #cls > 0 then - focus = cls[1] - fidx = 1 - end - - -- Abort if no clients are present - if not focus then return end - - local geometry = {} - if #cls > 1 then - geometry.width = area.width * math.sqrt(mwfact) - geometry.height = area.height * math.sqrt(mwfact) - geometry.x = area.x + (area.width - geometry.width) / 2 - geometry.y = area.y + (area.height - geometry.height) /2 - else - geometry.x = area.x - geometry.y = area.y - geometry.width = area.width - geometry.height = area.height - end - - local g = { - x = geometry.x, - y = geometry.y, - width = geometry.width, - height = geometry.height - } - p.geometries[focus] = g - - if #cls > 1 then - geometry.x = area.x - geometry.y = area.y - geometry.height = area.height / (#cls - 1) - geometry.width = area.width - - -- We don't know the focus window index. Try to find it. - if not fidx then - for k, c in ipairs(cls) do - if c == focus then - fidx = k - break - end - end - end - - -- First move clients that are before focused client. - for k = fidx + 1, #cls do - p.geometries[cls[k]] = { - x = geometry.x, - y = geometry.y, - width = geometry.width, - height = geometry.height - } - geometry.y = geometry.y + geometry.height - end - - -- Then move clients that are after focused client. - -- So the next focused window will be the one at the top of the screen. - for k = 1, fidx - 1 do - p.geometries[cls[k]] = { - x = geometry.x, - y = geometry.y, - width = geometry.width, - height = geometry.height - } - geometry.y = geometry.y + geometry.height - end - end -end - ---- The magnifier layout. --- @clientlayout awful.layout.suit.magnifier - -magnifier.name = "magnifier" - -return magnifier - --- vim: filetype=lua:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:textwidth=80 |