drawable: Support for true transparency (FS#1210)
This makes the drawable paint the wallpaper in the background (i.e. pseudo transparency) only if there is not a composite manager running, as reported by the value of awesome.composite_manager_running. In other words: drawables can now make use of true transparency. Signed-off-by: Björn Åström <bjoast@gmail.com> Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
parent
360e1a5f92
commit
c6365fa2f6
|
@ -28,15 +28,20 @@ local function do_redraw(self)
|
||||||
|
|
||||||
-- Draw the background
|
-- Draw the background
|
||||||
cr:save()
|
cr:save()
|
||||||
-- This is pseudo-transparency: We draw the wallpaper in the background
|
|
||||||
local wallpaper = surface(capi.root.wallpaper())
|
if not capi.awesome.composite_manager_running then
|
||||||
if wallpaper then
|
-- This is pseudo-transparency: We draw the wallpaper in the background
|
||||||
|
local wallpaper = surface(capi.root.wallpaper())
|
||||||
|
if wallpaper then
|
||||||
|
cr.operator = cairo.Operator.SOURCE
|
||||||
|
cr:set_source_surface(wallpaper, -x, -y)
|
||||||
|
cr:paint()
|
||||||
|
end
|
||||||
|
cr.operator = cairo.Operator.OVER
|
||||||
|
else
|
||||||
cr.operator = cairo.Operator.SOURCE
|
cr.operator = cairo.Operator.SOURCE
|
||||||
cr:set_source_surface(wallpaper, -x, -y)
|
|
||||||
cr:paint()
|
|
||||||
end
|
end
|
||||||
|
|
||||||
cr.operator = cairo.Operator.OVER
|
|
||||||
cr:set_source(self.background_color)
|
cr:set_source(self.background_color)
|
||||||
cr:paint()
|
cr:paint()
|
||||||
cr:restore()
|
cr:restore()
|
||||||
|
|
Loading…
Reference in New Issue