Bug 52263 - Replace custom "hourglass" pointer/cursor by the operating system's default wait pointer everywhere
Summary: Replace custom "hourglass" pointer/cursor by the operating system's default w...
Status: NEW
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: UI (show other bugs)
Version:
(earliest affected)
3.5.5.3 release
Hardware: Other Mac OS X (All)
: high enhancement
Assignee: Not Assigned
URL:
Whiteboard:
Keywords:
: 54407 (view as bug list)
Depends on:
Blocks: MacOS-Wishlist
  Show dependency treegraph
 
Reported: 2012-07-19 11:14 UTC by Roman Eisele
Modified: 2019-02-02 15:25 UTC (History)
6 users (show)

See Also:
Crash report or crash signature:


Attachments
This is the terrible pointer I am talking about (file copied from LibreOffice 3.5.5.3) (246 bytes, image/png)
2012-07-19 11:14 UTC, Roman Eisele
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Roman Eisele 2012-07-19 11:14:13 UTC
Created attachment 64386 [details]
This is the terrible pointer I am talking about (file copied from LibreOffice 3.5.5.3)

On some operations, e.h. when I save a very big .odt file (like in attachment 64232 [details]), LibreOffice shows a custom "hourglass" pointer/cursor; in the MacOS X version, the image file is at
   LibreOffice.app/Contents/Resources/hourglass.png

My request is simple:
Please don't use this custom pointer anymore, use the operating system's default wait pointer everywhere (I suppose that there is a default wait pointer on each operating system, at least there is one on MacOS and Windows: the spinning ring on Windows Vista/7, the spinning ball in MacOS X, and the system's [! not our own one!] hourglass on Windows XP).

Rationale:
This is an old-styled black-and-white pointer which reminds us terribly of the 1980s or early 1990s; the pointer does not even change its image to suggest the ongoing processing, as wait pointers used to do then. To make LibreOffice look up-to-date, we should move to modern pointer some day. In this case, which is IMHO the most important one (because this is the most outdated looking pointer), this is very _simple_: we don't need to come up with yet another wait pointer, we can just use the operation system's default wait pointer, as most applications do.

So please give the coup de grâce to this senile monster ;-)
Comment 1 Roman Eisele 2012-07-19 11:20:37 UTC
I forgot to mention that LibreOffice already uses the system's default wait pointer in many situations (at least on MacOS X); it is a question of consistency to improve the remaining situations in which we still use the old custom "hourglass" pointer, in order to remove the latter everywhere.

Maybe this is an easy hack? I can't judge this.
Comment 2 Ivan Timofeev (retired) 2012-09-11 16:57:55 UTC
IIRC I never saw this custom cursor under Windows and Linux, so this is a Mac problem?
Comment 3 Roman Eisele 2012-09-11 17:07:19 UTC
(In reply to comment #2)
> IIRC I never saw this custom cursor under Windows and Linux, so this is a Mac
> problem?

That is possible; I set the Platform picker to "Mac OS X" for now.

But it is also possible that it just happens very rarely -- even on Mac OS, it is not easy to spot this pointer, it is only shown for a second or two on some long-lasting operations.
Comment 4 Alex Thurgood 2012-10-04 09:27:20 UTC
Confirming, but a feature request nonetheless, and no doubt of fairly low priority.
Comment 5 Alex Thurgood 2012-10-04 09:28:54 UTC
Although, it might be fairly easy to find out where in the code it is used and replace it with the standard OS beachball ?


Alex
Comment 6 Roman Eisele 2012-10-04 09:56:24 UTC
(In reply to comment #4)
> ... and no doubt of fairly low priority.

Doubtless! ;-)


(In reply to comment #5)
> Although, it might be fairly easy to find out where in the code it is used
> and replace it with the standard OS beachball ?

According to my (poor) code reading facilities,
the following lines seem relevant:

1)
http://opengrok.libreoffice.org/xref/core/vcl/Zip_osxres.mk#71

2)
http://opengrok.libreoffice.org/xref/core/vcl/aqua/source/app/saldata.cxx#151

3)
http://opengrok.libreoffice.org/xref/core/xmloff/source/core/xmltoken.cxx#2574

Probably line 1) could just be deleted, together with the cursors/hourglass.png file, as soon as the cursor is not used anymore; and 2) may be the line which needs to be changed -- I just don’t know how to “replace it with the standard OS beachball” there :-(
Comment 7 Emir Sarı (away) 2012-11-23 02:41:47 UTC
*** Bug 54407 has been marked as a duplicate of this bug. ***
Comment 8 Sierk Bornemann 2014-06-20 10:26:02 UTC
(In reply to comment #6)

The issue still is present (LO 4.2.5.2, LO 4.3.0.1). Any progress in it?

For instance, it attracts to my attention, when starting LO for the first time, and when then opening a known recent document from the overview panel.
If closing LO and doing the same again, the hourglass doesn't show up again, since both, the application as well as the said document, could be loaded faster into memory than the attempt before, so the hourglass then doesn't/needn't appear.

The fact, that this issue *still* resists in the year 2014, giving LO a touch of a forgotten relict of the 1980th, and obviously still is *not* fixed although known long enough, really is an embarrassment.

If the fix really would be trivial to do, then please fix this issue and use the system's waiting pointer.

I am raising the importance of this issue to "high", because this issue is one of such seeming-of-no-importance-issues, Mac users complain about (rightly!) and which show tellingly, how unlovingly the Mac platform sometimes is treated concerning some Open Source software in comparison to the Windows platform and Linux platform.

Open Source can do better than leaving bad impressions such as this issue. Much better. Let's prove it!
Comment 9 Sierk Bornemann 2015-01-08 10:23:07 UTC
In reply to https://bugs.freedesktop.org/show_bug.cgi?id=53148#c4 :

The issue still exists also in LibreOffice Version: 4.4.0.1 and lower for Mac (OS X Yosemite 10.10.1).

Occurrence: start LibreOffice -> remain in main area of start center -> click on any shown recent document to open it


Please fix.
Comment 10 Rimas Kudelis 2015-01-09 05:48:02 UTC
Apparently, there seems to be no official way for an app to opt to use this cursor itself – the OS sets it when the app is unresponsive:
http://stackoverflow.com/questions/13274975/how-can-i-set-the-mac-colorful-loading-cursor-to-an-nsimageview

This makes me wonder: if you try to open a really big document (one which would take ~10 seconds to load), does OS X replace this hourglass cursor with its own spinning wheel? If so, then perhaps the solution is to simply not change the cursor to busy state from within LibreOffice at all?
Comment 12 Rimas Kudelis 2015-01-09 05:55:32 UTC
And here are the images (strangely, without names) of the cursors that the OS provides:
https://developer.apple.com/library/mac/documentation/UserExperience/Conceptual/OSXHIGuidelines/Pointers.html#//apple_ref/doc/uid/20000957-CH97-SW2

My apologies for multiple comments in a row.
Comment 13 Sierk Bornemann 2015-03-29 18:48:24 UTC
Since Bug 53148 and Bug 53151 have been fixed recently concerning the Windows platform – what about fixing the cursors generally for *all* platforms and abolish the old custom SO/OO/LO cursors in favor to native system cursors *in general*?
Comment 14 Adolfo Jayme 2015-03-30 00:28:06 UTC
Sierk, can you read comment 10 again before being annoyingly repetitive?
Comment 15 Sierk Bornemann 2016-12-26 18:28:13 UTC
(In reply to Rimas Kudelis from comment #10)
> Apparently, there seems to be no official way for an app to opt to use this
> cursor itself – the OS sets it when the app is unresponsive:
> http://stackoverflow.com/questions/13274975/how-can-i-set-the-mac-colorful-
> loading-cursor-to-an-nsimageview
> 
> This makes me wonder: if you try to open a really big document (one which
> would take ~10 seconds to load), does OS X replace this hourglass cursor
> with its own spinning wheel? If so, then perhaps the solution is to simply
> not change the cursor to busy state from within LibreOffice at all?

Apple: Support Document PH25689: macOS Sierra: Pointers in macOS (Sep 26, 2016)
https://support.apple.com/kb/PH25689?viewlocale=en_US&locale=en_US

[quote]
Wait (spinning disk) cursor = Items are loading = Appears when items are loading. You can still move the pointer elsewhere.

Wait (spinning disk) cursor = Wait cursor = Appears when a delay of more than a few seconds occurs.
[/quote]


The two icons for Wait (spinning disk) cursor either used for indicating "Items are loading" or used for indicating a delay of a few seconds seem to be/are _identical_.



Apple: macOS Human Interface Guidelines: Pointers
https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/OSXHIGuidelines/Pointers.html:

[quote]
macOS provides several standard pointers that provide well-defined feedback to users. It’s important to use these pointers correctly because users already know what they mean.

Use system-provided pointers according to their intended purpose. Users are accustomed to the meaning of the pointers they see in macOS. If you change the meaning of a system-provided pointer, users can’t predict the results of their actions.

[…]

The spinning wait cursor (shown below) is also standard, but it is displayed automatically by the window server when an app can't handle all of the events it receives. In general, if an app doesn’t respond for a few moments, the spinning wait cursor appears. If the app continues to be unresponsive, users often react by force-quitting it.

*Create a custom pointer cautiously.* *Before you design a custom pointer for your app (especially a custom version of a standard pointer), be sure the new pointer actually improves the usability of your app and doesn’t confuse users.* If you’ve determined that you need a custom pointer, follow these guidelines as you design it:

Your design needs to make clear where the hot spot of the pointer is (briefly, a pointer’s hot spot is the part of the pointer that must be positioned over an onscreen object before clicking has an effect).

If your custom pointer is a version of a standard pointer, you also need to create custom versions of related pointers. For example, if you create a custom version of the arrow pointer you also need to create custom versions of the related arrow pointers, such as copy, move, alias, and poof.
[/quote]



The hourglass cursor used in current LO on macOS violates current Human Interface Guidelines of Apple as well as Apples support document PH25689. Please use either the official system spinning wheel or provide a custom icon for the waiting cursor that looks better and more modern and Mac-like.