https://bugs.kde.org/show_bug.cgi?id=459774

--- Comment #18 from Naxdy <xna...@hydra-development.net> ---
(In reply to Carlos Solís from comment #17)
> Regarding the implementation, I was under the impression that the hints
> boolean values, which include the "resident" and "transient" values, worked
> like this:
> 
> - Resident: the notification is not dismissed until the user manually closes
> it. Similar to permanent notifications on Android.
> - Transient: the notification is automatically dismissed and furthermore, is
> not stored in the tray when it times out.
> 
> Our issue currently comes with the behavior for the default case (no
> resident hint, no transient hint either), which seems to be left up to each
> implementation as per the specs. (See
> https://specifications.freedesktop.org/notification-spec/notification-spec-
> latest.html#hints ). They explicitly state that "Neither clients nor
> notification servers are required to support any hints". However, besides of
> these boolean values there's also the urgency level, which does include a
> recommended implementation cue - regarding critical urgency notifications,
> "They should only be closed when the user dismisses them, for example, by
> clicking on the notification."

That's correct. I do apologize for the confusion, because the problem I've
outlined isn't actually that notifications aren't "resident" by default
(although this would solve the problem at the cost of producing others), but
simply that they lose their interactive functionalities once the popup
disappears and they are stored in history only.

Resident notifications aren't expired the same way "normal" notifications are,
which is why they keep their interactive features - therefore I initially
thought making all notifications resident should be the default behavior.

The implementation I've submitted seeks to establish a middle-ground of sorts,
by initially treating "resident" notifications and those with interactive
features the same way: To not formally "expire" them when the popup is gone,
but rather mark them expired, so the popup disappears, but the notification is
technically kept open.

The treatment of notifications then differs: Resident notifications are kept
open no matter how many times a user interacts with them (as was the case
before), but regular notifications are then properly expired (because most seem
to lose their functionality after one interaction anyway). This then also
causes any interactive buttons in the history to disappear (since they would
lose functionality anyway most of the time).

There is currently one situation in which this would produce an unexpected
result however: If the application that fired an interactive notification (e.g.
Discord) is closed before the notification has been interacted with, the
interaction would of course not produce any results, since there is no client
to handle the event.

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to