From b1dbbb00416aa09b5a1ab467dbeaaac04d9464fc Mon Sep 17 00:00:00 2001 From: Jajauma Date: Thu, 12 May 2016 00:17:40 +0300 Subject: [PATCH] naughty: display the client-supplied localized action description in UI According to the Desktop Notification specification document [1] the clients supply actions available along with a notification in a form of a list of pairs where first element is an identifier of an action and the second is a localized message that will be displayed to the user. Up to now the naughty code directly used the action identifier text as a part of the notification layout exposed to the user. This commit makes use of a localized action description for that purpose. 1) https://developer.gnome.org/notification-spec/ --- lib/naughty/dbus.lua | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/lib/naughty/dbus.lua b/lib/naughty/dbus.lua index 9f749f9df..fe0b694c4 100644 --- a/lib/naughty/dbus.lua +++ b/lib/naughty/dbus.lua @@ -137,24 +137,20 @@ capi.dbus.connect_signal("org.freedesktop.Notifications", function (data, appnam if actions then args.actions = {} - local actionid - -- create actions callbacks - for i , v in ipairs(actions) do - if i % 2 == 1 then - actionid = v - elseif actionid == "default" then + for i = 1,#actions,2 do + local action_id = actions[i] + local action_text = actions[i + 1] + + if action_id == "default" then args.run = function() sendActionInvoked(notification.id, "default") naughty.destroy(notification, naughty.notificationClosedReason.dismissedByUser) end - actionid = nil - elseif actionid ~= nil then - local action = actionid - args.actions[actionid] = function() - sendActionInvoked(notification.id, action) + elseif action_id ~= nil and action_text ~= nil then + args.actions[action_text] = function() + sendActionInvoked(notification.id, action_id) naughty.destroy(notification, naughty.notificationClosedReason.dismissedByUser) end - actionid = nil end end end