macos: fix crash in imcontextquartz
authorChristian Hergert <christian@hergert.me>
Thu, 9 Dec 2021 20:26:33 +0000 (12:26 -0800)
committerChristian Hergert <christian@hergert.me>
Thu, 9 Dec 2021 20:26:33 +0000 (12:26 -0800)
gtk/gtkimcontextquartz.c

index a64b9a22e075c586c04ba77d1967bcd7484f4486..9adf39200bd28ab1ba2dee0db8741bbd0b333b53 100644 (file)
@@ -305,7 +305,7 @@ static void
 quartz_set_cursor_location (GtkIMContext *context, GdkRectangle *area)
 {
   GtkIMContextQuartz *qc = GTK_IM_CONTEXT_QUARTZ (context);
-  GtkWidget* surface_widget = GTK_WIDGET (gdk_surface_get_widget (qc->client_surface));
+  GtkWidget* surface_widget;
   int sx, sy;
   double wx, wy;
 
@@ -317,6 +317,11 @@ quartz_set_cursor_location (GtkIMContext *context, GdkRectangle *area)
   if (!qc->focused)
     return;
 
+  surface_widget = GTK_WIDGET (gdk_surface_get_widget (qc->client_surface));
+
+  if (!surface_widget)
+    return;
+
   gdk_surface_get_origin (qc->client_surface, &sx, &sy);
   gtk_widget_translate_coordinates(qc->client_widget, surface_widget,
                                    area->x, area->y, &wx, &wy);