gtk-demo: Fix popover positioning in popover test
authorBenjamin Otte <otte@redhat.com>
Sun, 5 Nov 2017 14:22:14 +0000 (15:22 +0100)
committerBenjamin Otte <otte@redhat.com>
Sun, 5 Nov 2017 14:22:14 +0000 (15:22 +0100)
demos/gtk-demo/popover.c

index 8b48542532816f30c9881d74de9cb73599c5d6d6..443d3d4f8c4b1a0188f9b2d0df4c2248003cd660 100644 (file)
@@ -97,10 +97,8 @@ day_selected_cb (GtkCalendar *calendar,
                  gpointer     user_data)
 {
   cairo_rectangle_int_t rect;
-  GtkAllocation allocation;
   GtkWidget *popover;
   GdkEvent *event;
-  GdkWindow *window;
   gdouble x, y;
 
   event = gtk_get_current_event ();
@@ -108,12 +106,11 @@ day_selected_cb (GtkCalendar *calendar,
   if (gdk_event_get_event_type (event) != GDK_BUTTON_PRESS)
     return;
 
-  window = gdk_event_get_window (event);
   gdk_event_get_coords (event, &x, &y);
-  gdk_window_coords_to_parent (window, x, y, &x, &y);
-  gtk_widget_get_allocation (GTK_WIDGET (calendar), &allocation);
-  rect.x = x - allocation.x;
-  rect.y = y - allocation.y;
+  gtk_widget_translate_coordinates (gtk_get_event_widget (event),
+                                    GTK_WIDGET (calendar),
+                                    x, y,
+                                    &rect.x, &rect.y);
   rect.width = rect.height = 1;
 
   popover = create_popover (GTK_WIDGET (calendar),