X-Git-Url: https://git.rmz.io/dotfiles.git/blobdiff_plain/f8c02273484224b9133f77606f0016fb6cdaff4b..e0f52edab239cc479d296f039c1ecf8d1b01de33:/awesome/widgets/mpd_widget.lua diff --git a/awesome/widgets/mpd_widget.lua b/awesome/widgets/mpd_widget.lua index 2c6ab78..e71e087 100644 --- a/awesome/widgets/mpd_widget.lua +++ b/awesome/widgets/mpd_widget.lua @@ -79,7 +79,7 @@ function widget:popup_show() 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 @@ -90,19 +90,27 @@ function widget:popup_show() 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 @@ -116,12 +124,12 @@ 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)