GtkTooltip: Scale the cursor size on X11
GtkSettings/X11 takes the values as provided by XSettings. Unlike other backends, the values of XSettings are in physical size (that's because X11 doesn't support mixed-DPI setups anyway). Take that in account when retrieving the cursor size in gtk_tooltip_position (). Note that this discrepancy between the X11 and other backends has been fixed in GTK4. Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/5223
This commit is contained in:
parent
84a3ea5ec4
commit
bbce00f3a3
@ -42,6 +42,9 @@
|
|||||||
#ifdef GDK_WINDOWING_WAYLAND
|
#ifdef GDK_WINDOWING_WAYLAND
|
||||||
#include "wayland/gdkwayland.h"
|
#include "wayland/gdkwayland.h"
|
||||||
#endif
|
#endif
|
||||||
|
#ifdef GDK_WINDOWING_X11
|
||||||
|
#include "x11/gdkx.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -898,6 +901,16 @@ gtk_tooltip_position (GtkTooltip *tooltip,
|
|||||||
if (cursor_size == 0)
|
if (cursor_size == 0)
|
||||||
cursor_size = gdk_display_get_default_cursor_size (display);
|
cursor_size = gdk_display_get_default_cursor_size (display);
|
||||||
|
|
||||||
|
#ifdef GDK_WINDOWING_X11
|
||||||
|
if (GDK_IS_X11_SCREEN (screen))
|
||||||
|
{
|
||||||
|
/* Cursor size on X11 comes directly from XSettings which
|
||||||
|
* report physical sizes, unlike on other backends. So in
|
||||||
|
* that case we have to scale the retrieved cursor_size */
|
||||||
|
cursor_size /= gtk_widget_get_scale_factor (new_tooltip_widget);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
if (device)
|
if (device)
|
||||||
anchor_rect_padding = MAX (4, cursor_size - 32);
|
anchor_rect_padding = MAX (4, cursor_size - 32);
|
||||||
else
|
else
|
||||||
|
Loading…
Reference in New Issue
Block a user