From ea4f552d509ddc71e2661d304475d204e7ab9fd9 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 23 Feb 2019 16:52:51 -0500 Subject: [PATCH] xim: Stop using gdk_surface_get_user_data Use gtk_root_get_for_surface instead. --- gtk/gtkimcontextxim.c | 25 +++++-------------------- 1 file changed, 5 insertions(+), 20 deletions(-) diff --git a/gtk/gtkimcontextxim.c b/gtk/gtkimcontextxim.c index c93fcc34b2..98f6e530a6 100644 --- a/gtk/gtkimcontextxim.c +++ b/gtk/gtkimcontextxim.c @@ -22,6 +22,7 @@ #include "gtkimcontextxim.h" #include "gtkimmoduleprivate.h" +#include "gtkroot.h" #include "gtk/gtkintl.h" @@ -1526,32 +1527,16 @@ on_client_widget_hierarchy_changed (GtkWidget *widget, update_in_toplevel (context_xim); } -/* Finds the GtkWidget that owns the window, or if none, the - * widget owning the nearest parent that has a widget. - */ -static GtkWidget * -widget_for_window (GdkSurface *window) -{ - while (window) - { - gpointer user_data; - gdk_surface_get_user_data (window, &user_data); - if (user_data) - return user_data; - - window = gdk_surface_get_parent (window); - } - - return NULL; -} - /* Called when context_xim->client_surface changes; takes care of * removing and/or setting up our watches for the toplevel */ static void update_client_widget (GtkIMContextXIM *context_xim) { - GtkWidget *new_client_widget = widget_for_window (context_xim->client_surface); + GtkWidget *new_client_widget = NULL; + + if (context_xim->client_surface) + new_client_widget = gtk_root_get_for_surface (context_xim->client_surface); if (new_client_widget != context_xim->client_widget) {