popover: Return correct values from get_surface_transform()
authorTimm Bäder <mail@baedert.org>
Sat, 16 May 2020 05:20:50 +0000 (07:20 +0200)
committerTimm Bäder <mail@baedert.org>
Sat, 16 May 2020 20:03:58 +0000 (22:03 +0200)
We do not (yet) care about the box shadow here, so it's sufficient to
return the css values.

gtk/gtkpopover.c

index 44799a008c6a3d90e46813d9df98feca8bfcc030..5d4b0e62244fd18317825c5dc9509df5f19efa31 100644 (file)
 #include "gtkmenusectionboxprivate.h"
 #include "gdk/gdkeventsprivate.h"
 #include "gtkpointerfocusprivate.h"
-#include "gtkcsstypesprivate.h"
 #include "gtkcssnodeprivate.h"
 #include "gtkcsscolorvalueprivate.h"
-#include "gtkcssnumbervalueprivate.h"
 #include "gtksnapshot.h"
 #include "gtkshortcutmanager.h"
 #include "gtkbuildable.h"
 #include "gtktooltipprivate.h"
+#include "gtkcssboxesimplprivate.h"
 
 #include "gtkrender.h"
 #include "gtkstylecontextprivate.h"
@@ -221,15 +220,14 @@ gtk_popover_native_get_surface_transform (GtkNative *native,
                                           int       *x,
                                           int       *y)
 {
-  GtkCssStyle *style;
+  GtkCssBoxes css_boxes;
+  const graphene_rect_t *margin_rect;
+
+  gtk_css_boxes_init (&css_boxes, GTK_WIDGET (native));
+  margin_rect = gtk_css_boxes_get_margin_rect (&css_boxes);
 
-  style = gtk_css_node_get_style (gtk_widget_get_css_node (GTK_WIDGET (native)));
-  *x  = _gtk_css_number_value_get (style->size->margin_left, 100) +
-        _gtk_css_number_value_get (style->border->border_left_width, 100) +
-        _gtk_css_number_value_get (style->size->padding_left, 100);
-  *y  = _gtk_css_number_value_get (style->size->margin_top, 100) +
-        _gtk_css_number_value_get (style->border->border_top_width, 100) +
-        _gtk_css_number_value_get (style->size->padding_top, 100);
+  *x = - margin_rect->origin.x;
+  *y = - margin_rect->origin.y;
 }
 
 static gboolean