elementary / notifications

Gtk Notifications Server
https://elementary.io
GNU General Public License v3.0
38 stars 6 forks source link

Actions don't work with GNOME Clocks #128

Closed cassidyjames closed 1 year ago

cassidyjames commented 3 years ago

Notification actions appear for GNOME Clocks alarms, but pressing them dismisses the notification without actually performing the action. I'm not sure how GNOME Clocks is sending notifications, but if this isn't working with a core GNOME app it's likely it won't work with more apps.

Tested with both the Flatpak and Ubuntu repo versions of GNOME Clocks.

elementary OS 6 daily build with notifications from master. GNOME Clocks version 40.

danirabbit commented 3 years ago

The demo sends params, so we know this is a thing that works. Here we're making sure to construct the action detail name as such: https://github.com/elementary/notifications/blob/master/demo/MainWindow.vala#L136

It looks like we should be getting an alarm id: https://github.com/GNOME/gnome-clocks/blob/13a15e8506d90b0300f9549020c66280ee4d3026/src/alarm-item.vala#L117

They're not constructing the action name using the utils from GLib, but I did a test and it appears to ultimately be the same thing. But, with the flatpak we are definitely getting action names like stop-alarm and not stop-alarm::2983hnsnowdf0823rh2r like you'd expect

It looks like there are upstream issue reports about the buttons not working on various distros and DEs. For example: https://gitlab.gnome.org/GNOME/gnome-clocks/-/issues/172

Building 3.38 from source, it does seem to work as expected and I can't reproduce this issue with clocks from the Ubuntu repos either, so I'm wondering if this is a consequence of the sandbox?

It would be interesting if we could reproduce this problem with missing parameters for other sandboxed apps

cassidyjames commented 3 years ago

Ah, you're right; I had tested from the Ubuntu repo version and had the same issue, but it was actually just re-opening the Flatpak one still since it was running in the background as a daemon. :sweat_smile: I can't actually reproduce this with the one in the repos; it does work as expected.

Marukesu commented 1 year ago

closing this since it was a portal issue that got fixed there.