if self._notification then return end
self._notification = naughty.notify(
{ title = table.title
- , icon = table.icon
+ , icon = table.icon or beautiful.mpd_default_album
, icon_size = 64
, text = table.text
, timeout = 0
end
function widget:popup_hide(delay)
+ local function destroy()
+ if self._hover then return end
+ if not self._notification then return end
+ naughty.destroy(self._notification)
+ self._notification = nil
+ end
+
+ if not delay then
+ destroy()
+ return
+ end
+
if self._hide_timer and self._hide_timer.started then
+ self._hide_timer.timeout = delay
self._hide_timer:again()
else
self._hide_timer = timer(
{ timeout = delay
, autostart = true
, single_shot = true
- , callback = function()
- if self._hover then return end
- if not self._notification then return end
- naughty.destroy(self._notification)
- self._notification = nil
- end
+ , callback = destroy
})
end
end
function widget:popup_oneshot(timeout)
if self._notification then
- self:popup_update()
- self:popup_hide(5)
+ self:popup_hide()
+ self:popup_show()
else
self:popup_show()
- self:popup_hide(5)
end
+ self:popup_hide(5)
end
function widget:error_handler(err)