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);
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);
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));
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);
&(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));