Re: Good read from a new GNOME user



On Thu, May 2, 2019 at 1:27 PM Allan Day <aday gnome org> wrote:

4. Unnecessary notifications (e.g., "Application is ready")

Indeed, my feeling is that those notifications do more harm than good.
I can't see an issue for this; does anyone know of one?

There are several bugs in bugzilla, but IMHO the notification isn't
the actual issue.

The notification is shown when a window "demands attention".

That's something applications may request themselves, for example
after a longer operation finished (a big download, cd burning (the two
people who still do that), ...). It would be wrong to pop up the
window out of nowhere, and simply ignoring the hint doesn't seem right
either. A notification seems very appropriate here, although we'd
rather have applications send them themselves instead of using an old
hint.

The other case (and that's the one we are really talking about) is
mutter setting the hint on a window after focus-stealing-prevention
kicked in. That means that an application tried to focus a window, but
mutter rejected the request because there was some user action after
the event that triggered the focus request. The problem here is that
while not allowing applications to pop up windows randomly - the
canonical example is entering your banking data in a chat window that
pops up - there are cases where focus-stealing-prevention kicks in
when it shouldn't.

Those are the cases where the notification is perceived as annoying
and useless, but removing it isn't an actual solution - it doesn't
mean that the window is shown to the user directly, it means they
don't get any response at all to their action!

The big hammer fix would be to stop doing any focus-stealing
prevention altogether, at the price of having misbehaving applications
interrupt the user at any moment. The better fix would be to find the
cases where we expect focus requests to succeed, analyze why they
don't and address the underlying issue. Which unfortunately isn't
trivial - for notifications for example, we need to get the click
timestamp into GApplication's platform data, then have GTK inject it
into gtk_window_present().


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]