Tooltip: Fix the used cursor size if 0 in Settings

Before the recent rework of positioning in GtkTooltip, the widget always
used the cursor_size of the GdkDisplay. That work redid this to instead
take GtkSettings::gtk-cursor-theme-size. But that property's doc says:

> Size to use for cursors, or 0 to use the default size.

and has 0 as its default. This is quite a likely scenario for anyone
whose desktop or settings.ini does not explicitly provide a cursor size,
which is the case for XFCE and win32, to name just two common platforms.

Then, it seems getting a cursor_size of 0 causes GtkTooltip to freak out
and hide/show itself at a very rapid speed, thus making it unusable.

So, we should check whether the Settings return 0 and, if so, still use
gdk_display_get_default_cursor_size (display) to ensure we get a size.

https://gitlab.gnome.org/GNOME/gtk/issues/1371
This commit is contained in:
Daniel Boles
2018-10-07 18:15:09 +01:00
parent b10cde7bdc
commit 9b7d886b72

View File

@@ -898,6 +898,9 @@ gtk_tooltip_position (GtkTooltip *tooltip,
"gtk-cursor-theme-size", &cursor_size,
NULL);
if (cursor_size == 0)
cursor_size = gdk_display_get_default_cursor_size (display);
if (device)
anchor_rect_padding = MAX (4, cursor_size - 32);
else