From d56a5abd9936dbda82ed72620064d0300549e346 Mon Sep 17 00:00:00 2001 From: Uli Schlachter Date: Fri, 3 Sep 2010 17:43:36 +0200 Subject: [PATCH] awful.placement.no_overlap: Ignore desktop clients EWMH describes desktop windows like this: "_NET_WM_WINDOW_TYPE_DESKTOP indicates a desktop feature. This can include a single window containing desktop icons with the same dimensions as the screen, allowing the desktop environment to have full control of the desktop, without the need for proxying root window clicks." An example for such a window is nautilus' virtual root window. Naturally, such a window would always overlap with any given client, so awful.placement.no_overlap just didn't do anything at all. The fix is to ignore such clients for placement calculations. Signed-off-by: Uli Schlachter --- lib/awful/placement.lua.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/awful/placement.lua.in b/lib/awful/placement.lua.in index d6a27b97..38f39e06 100644 --- a/lib/awful/placement.lua.in +++ b/lib/awful/placement.lua.in @@ -131,7 +131,7 @@ function no_overlap(c) local areas = { capi.screen[c.screen].workarea } local geometry = c:geometry() for i, cl in pairs(cls) do - if cl ~= c and (client.floating.get(cl) or curlay == layout.suit.floating) then + if cl ~= c and cl.type ~= "desktop" and (client.floating.get(cl) or curlay == layout.suit.floating) then areas = area_remove(areas, cl:geometry()) end end