Hi

The attached patch file fixes a small bug and adds padding handling (got from tile management and not tested)
This works for me.

Many thanks for your work.
If needed, please send answer to my addr.

- Xavier
--- drop.lua.orig	2010-02-26 19:37:23.000000000 +0100
+++ drop.lua	2010-02-26 19:36:43.000000000 +0100
@@ -27,6 +27,7 @@
 local pairs = pairs
 local awful = require("awful")
 local setmetatable = setmetatable
+local ascreen = require("awful.screen")
 local capi = {
     mouse = mouse,
     client = client,
@@ -71,6 +72,15 @@
             -- Client geometry and placement
             local screengeom = capi.screen[screen].workarea
 
+            -- Handle padding
+            local padding = ascreen.padding(capi.screen[screen])
+            if padding then
+                screengeom.x = screengeom.x + (padding.left or 0)
+                screengeom.y = screengeom.y + (padding.top or 0)
+                screengeom.width = screengeom.width - ((padding.left or 0 ) + (padding.right or 0))
+                screengeom.height = screengeom.height - ((padding.top or 0) + (padding.bottom or 0))
+            end
+
             if width  <= 1 then width  = screengeom.width  * width  end
             if height <= 1 then height = screengeom.height * height end
 
@@ -80,7 +90,7 @@
 
             if     vert == "bottom" then y = screengeom.height + screengeom.y - height
             elseif vert == "center" then y = screengeom.y+(screengeom.height-height)/2
-            else   y =  screengeom.y - screengeom.y end
+            else   y =  screengeom.y end
 
             -- Client properties
             c:geometry({ x = x, y = y, width = width, height = height })

Reply via email to