From 739084e9bce75e301a05cae1909312924245d41e Mon Sep 17 00:00:00 2001 From: Zander Brown Date: Sun, 27 Aug 2023 01:54:56 +0100 Subject: [PATCH] tooltip: don't cross native boundaries When walking the tree looking for tooltips we shouldn't cross from, say, a popover to it's parent window Fix: https://gitlab.gnome.org/GNOME/gtk/-/issues/1234 Fix: https://gitlab.gnome.org/GNOME/gnome-calendar/-/issues/1038 Fix: https://gitlab.gnome.org/GNOME/gtk/-/issues/5998 Fix: https://gitlab.gnome.org/GNOME/nautilus/-/issues/3063 See: https://gitlab.gnome.org/GNOME/console/-/issues/318 --- gtk/gtktooltip.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gtk/gtktooltip.c b/gtk/gtktooltip.c index c007b1641b..7bc11a694c 100644 --- a/gtk/gtktooltip.c +++ b/gtk/gtktooltip.c @@ -302,8 +302,8 @@ gtk_tooltip_set_icon_from_gicon (GtkTooltip *tooltip, * Replaces the widget packed into the tooltip with * @custom_widget. @custom_widget does not get destroyed when the tooltip goes * away. - * By default a box with a `GtkImage` and `GtkLabel` is embedded in - * the tooltip, which can be configured using gtk_tooltip_set_markup() + * By default a box with a `GtkImage` and `GtkLabel` is embedded in + * the tooltip, which can be configured using gtk_tooltip_set_markup() * and gtk_tooltip_set_icon(). */ void @@ -560,6 +560,9 @@ gtk_tooltip_run_requery (GtkWidget **widget, { GtkWidget *parent = gtk_widget_get_parent (*widget); + if (GTK_IS_NATIVE (*widget)) + break; + if (parent) { graphene_point_t r = GRAPHENE_POINT_INIT (*x, *y);