GNOME Bugzilla – Bug 652066
Show spinner in top bar to indicate application activity
Last modified: 2014-02-24 13:49:21 UTC
As mentioned in bug 650604 comment 1, gnome-shell should track the state of the cursor for various windows/apps, and automatically show a spinner in the panel when the application switches to a waiting cursor. This would allow showing activity, even when only a portion of the interface of that application is affected by the wait, and allows knowing the status of an operation at a glance.
This is obviously especially important when the cursor is invisible, as the code in bug 650604 implements.
gnome-shell can track cursor changes by listening for XFixesCursorNotifyEvent events.
(In reply to comment #2) > gnome-shell can track cursor changes by listening for XFixesCursorNotifyEvent > events. There's already code to do that in the magnifier (and it runs even when the magnifier isn't running :-/)
I'm wondering if the cursor is the right fit for this at all. A few things: I think there may be value in showing this even on non-touch devices. It can be useful to have a way for applications to signal they are working that is independent of the cursor. We tend to overuse the strange "busy but not really" cursor a lot that spins but has a pointer. It may be better to indicate the work another way and keep the pointer just a pointer. This avoids contention problems where the cursor needs to change to provide feedback for resizing etc. We currently don't really know when an application has really started up or loaded new content. This is partly because we don't seem to have a good way for the application to tell us that. I can imagine the startup notification itself causes a spinner to be shown and then the application continues the spinning until it is entirely loaded and ready. There are times when applications perform work on their own that are unrelated to user input. It would be entirely strange to change the user's cursor at these times since they shouldn't interfere with input. Occasionally, but inconsistently, the status bar has been used for these cases. Many apps historically have shown their own spinner either in a toolbar, statusbar, tab, etc because there is no application level way to indicate activity. I'm wondering if we could use a new API for this.
From the discussions, I'm guessing that the original request isn't the main point of discussion but the implementation itself. This could be split into: - Add spinner widget to panel with on/off - Add API to GtkApplication (or GtkApplicationWindow) to set the spinner - Port an application to using the spinner (look for GDK_WATCH in an application for example). An application like Epiphany would be great to port. - Write guidelines as to when apps should use the spinner in the panel vs. the spinning cursor(s)
We have g_application_set_busy now
(In reply to comment #6) > We have g_application_set_busy now Indeed - tentatively duping this on bug 697207, feel free to reopen if we need something other than the set_busy() API. *** This bug has been marked as a duplicate of bug 697207 ***