gtk4-demo: Stop using gtk_widget_get_allocated_size
authorMatthias Clasen <mclasen@redhat.com>
Sat, 29 Apr 2023 18:10:53 +0000 (14:10 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sat, 29 Apr 2023 18:30:21 +0000 (14:30 -0400)
demos/gtk-demo/dnd.c
demos/gtk-demo/fontplane.c
demos/gtk-demo/suggestionentry.c

index 086836f16a391b2adabc507590846c58d25df912..2373a71f12b8173b71d79028d8ad6ecdff3cf9ce 100644 (file)
@@ -109,15 +109,21 @@ static void
 apply_transform (CanvasItem *item)
 {
   GskTransform *transform;
+  graphene_rect_t bounds;
   double x, y;
 
-  x = gtk_widget_get_allocated_width (item->label) / 2.0;
-  y = gtk_widget_get_allocated_height (item->label) / 2.0;
-  item->r = sqrt (x*x + y*y);
+  /* Add css padding and margin */
+  if (!gtk_widget_compute_bounds (item->label, item->label, &bounds))
+    return;
+
+  x = bounds.size.width / 2.;
+  y = bounds.size.height / 2.;
+
+  item->r = sqrt (x * x + y * y);
 
   transform = gsk_transform_translate (NULL, &(graphene_point_t) { item->r, item->r });
   transform = gsk_transform_rotate (transform, item->angle + item->delta);
-  transform = gsk_transform_translate (transform, &(graphene_point_t) { -x, -y });
+  transform = gsk_transform_translate (transform, &GRAPHENE_POINT_INIT (-x, -y));
 
   gtk_fixed_set_child_transform (GTK_FIXED (item->fixed), item->label, transform);
   gsk_transform_unref (transform);
index b8c4f8c87dd7e227e9e81beac19b84aef993f40c..038ae68f58534176962f982df3fd6d2c5a217798 100644 (file)
@@ -42,8 +42,8 @@ val_to_xy (GtkFontPlane *plane,
   double u, v;
   int width, height;
 
-  width = gtk_widget_get_allocated_width (GTK_WIDGET (plane));
-  height = gtk_widget_get_allocated_height (GTK_WIDGET (plane));
+  width = gtk_widget_get_width (GTK_WIDGET (plane));
+  height = gtk_widget_get_height (GTK_WIDGET (plane));
 
   u = adjustment_get_normalized_value (plane->width_adj);
   v = adjustment_get_normalized_value (plane->weight_adj);
@@ -62,8 +62,8 @@ plane_snapshot (GtkWidget   *widget,
   cairo_t *cr;
 
   val_to_xy (plane, &x, &y);
-  width = gtk_widget_get_allocated_width (widget);
-  height = gtk_widget_get_allocated_height (widget);
+  width = gtk_widget_get_width (widget);
+  height = gtk_widget_get_height (widget);
 
   cr = gtk_snapshot_append_cairo (snapshot,
                                   &GRAPHENE_RECT_INIT (0, 0, width, height));
@@ -131,8 +131,8 @@ update_value (GtkFontPlane *plane,
   GtkWidget *widget = GTK_WIDGET (plane);
   double u, v;
 
-  u = CLAMP (x * (1.0 / gtk_widget_get_allocated_width (widget)), 0, 1);
-  v = CLAMP (1 - y * (1.0 / gtk_widget_get_allocated_height (widget)), 0, 1);
+  u = CLAMP (x * (1.0 / gtk_widget_get_width (widget)), 0, 1);
+  v = CLAMP (1 - y * (1.0 / gtk_widget_get_height (widget)), 0, 1);
 
   adjustment_set_normalized_value (plane->width_adj, u);
   adjustment_set_normalized_value (plane->weight_adj, v);
index f8a28c8375b657b8d5ae8553118c2163e5ff4ce1..d4dd418f20441a328786bf15f1d882cae464142c 100644 (file)
@@ -471,7 +471,7 @@ suggestion_entry_size_allocate (GtkWidget *widget,
                               &(GtkAllocation) { width - arrow_nat, 0, arrow_nat, height },
                               baseline);
 
-  gtk_widget_set_size_request (self->popup, gtk_widget_get_allocated_width (GTK_WIDGET (self)), -1);
+  gtk_widget_set_size_request (self->popup, gtk_widget_get_width (GTK_WIDGET (self)), -1);
   gtk_widget_queue_resize (self->popup);
 
   gtk_popover_present (GTK_POPOVER (self->popup));