widget: Save baseline without CSS values applies
This is in line with the other values, i.e. we save the size including all CSS values and subtract those when getting the allocation, size, etc.
This commit is contained in:
@@ -662,9 +662,6 @@ static GtkSizeRequestMode gtk_widget_real_get_request_mode (GtkWidget
|
||||
static void gtk_widget_queue_tooltip_query (GtkWidget *widget);
|
||||
|
||||
|
||||
static void gtk_widget_adjust_baseline_allocation (GtkWidget *widget,
|
||||
gint *baseline);
|
||||
|
||||
static void template_data_free (GtkWidgetTemplate*template_data);
|
||||
|
||||
static void gtk_widget_set_usize_internal (GtkWidget *widget,
|
||||
@@ -4263,10 +4260,7 @@ gtk_widget_size_allocate_transformed (GtkWidget *widget,
|
||||
&GRAPHENE_POINT3D_INIT (allocated_offset_x, allocated_offset_y, 0));
|
||||
|
||||
if (baseline >= 0)
|
||||
{
|
||||
gtk_widget_adjust_baseline_allocation (widget, &baseline);
|
||||
baseline -= margin.top + border.top + padding.top;
|
||||
}
|
||||
baseline -= priv->margin.top;
|
||||
|
||||
if (adjusted_width < 0 || adjusted_height < 0)
|
||||
{
|
||||
@@ -4324,6 +4318,9 @@ gtk_widget_size_allocate_transformed (GtkWidget *widget,
|
||||
adjusted_height -= margin.top + border.top + padding.top +
|
||||
margin.bottom + border.bottom + padding.bottom;
|
||||
|
||||
if (baseline >= 0)
|
||||
baseline -= margin.top + border.top + padding.top;
|
||||
|
||||
if (g_signal_has_handler_pending (widget, widget_signals[SIZE_ALLOCATE], 0, FALSE))
|
||||
g_signal_emit (widget, widget_signals[SIZE_ALLOCATE], 0,
|
||||
adjusted_width,
|
||||
@@ -4617,15 +4614,6 @@ gtk_widget_real_size_allocate (GtkWidget *widget,
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
gtk_widget_adjust_baseline_allocation (GtkWidget *widget,
|
||||
gint *baseline)
|
||||
{
|
||||
GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
|
||||
|
||||
*baseline -= priv->margin.top;
|
||||
}
|
||||
|
||||
static gboolean
|
||||
gtk_widget_real_can_activate_accel (GtkWidget *widget,
|
||||
guint signal_id)
|
||||
@@ -11489,10 +11477,20 @@ int
|
||||
gtk_widget_get_allocated_baseline (GtkWidget *widget)
|
||||
{
|
||||
GtkWidgetPrivate *priv = gtk_widget_get_instance_private (widget);
|
||||
GtkCssStyle *style;
|
||||
GtkBorder margin, border, padding;
|
||||
|
||||
g_return_val_if_fail (GTK_IS_WIDGET (widget), 0);
|
||||
|
||||
return priv->allocated_baseline;
|
||||
if (priv->allocated_baseline == -1)
|
||||
return -1;
|
||||
|
||||
style = gtk_css_node_get_style (priv->cssnode);
|
||||
get_box_margin (style, &margin);
|
||||
get_box_border (style, &border);
|
||||
get_box_padding (style, &padding);
|
||||
|
||||
return priv->allocated_baseline - margin.top - border.top - padding.top;
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user