[gtkimcontextquartz] Accommodate moving GdkSurface widget to private.
authorJohn Ralls <jralls@ceridwen.us>
Sun, 10 Oct 2021 20:16:49 +0000 (13:16 -0700)
committerJohn Ralls <jralls@ceridwen.us>
Sun, 10 Oct 2021 20:16:49 +0000 (13:16 -0700)
Fixes macOS build.

gtk/gtkimcontextquartz.c

index fc1e1ff3a8126fe17bbb529d664c57ac12675a7e..a64b9a22e075c586c04ba77d1967bcd7484f4486 100644 (file)
@@ -28,6 +28,7 @@
 #include "gdk/macos/gdkmacos.h"
 #include "gdk/macos/gdkmacosdisplay-private.h"
 #include "gdk/macos/gdkmacossurface-private.h"
+#include "gdk/gdksurfaceprivate.h"
 
 #import "gdk/macos/GdkMacosBaseView.h"
 
@@ -304,6 +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));
   int sx, sy;
   double wx, wy;
 
@@ -316,8 +318,9 @@ quartz_set_cursor_location (GtkIMContext *context, GdkRectangle *area)
     return;
 
   gdk_surface_get_origin (qc->client_surface, &sx, &sy);
-  gtk_widget_translate_coordinates(qc->client_widget, qc->client_surface->widget, area->x, area->y, &wx, &wy);
-  
+  gtk_widget_translate_coordinates(qc->client_widget, surface_widget,
+                                   area->x, area->y, &wx, &wy);
+
   qc->cursor_rect->x = sx + (int) wx;
   qc->cursor_rect->y = sy + (int) wy;
   qc->cursor_rect->width = area->width;