Merge branch 'naughty_icon_data_lifetime' of https://github.com/psychon/awesome

This commit is contained in:
Uli Schlachter 2018-08-22 12:26:49 +02:00
commit 2383209e9a
1 changed files with 9 additions and 1 deletions

View File

@ -16,6 +16,7 @@ local string = string
local capi = { awesome = awesome,
dbus = dbus }
local gtable = require("gears.table")
local gsurface = require("gears.surface")
local cairo = require("lgi").cairo
local schar = string.char
@ -102,7 +103,14 @@ local function convert_icon(w, h, rowstride, channels, data)
offset = offset + rowstride
end
return cairo.ImageSurface.create_for_data(tcat(rows), format, w, h, stride)
local pixels = tcat(rows)
local surf = cairo.ImageSurface.create_for_data(pixels, format, w, h, stride)
-- The surface refers to 'pixels', which can be freed by the GC. Thus,
-- duplicate the surface to create a copy of the data owned by cairo.
local res = gsurface.duplicate_surface(surf)
surf:finish()
return res
end
capi.dbus.connect_signal("org.freedesktop.Notifications",