diff --git a/gtk/gtkenums.h b/gtk/gtkenums.h index 1789d98c41..b4f0844313 100644 --- a/gtk/gtkenums.h +++ b/gtk/gtkenums.h @@ -70,7 +70,8 @@ typedef enum GTK_ALIGN_FILL, GTK_ALIGN_START, GTK_ALIGN_END, - GTK_ALIGN_CENTER + GTK_ALIGN_CENTER, + GTK_ALIGN_BASELINE } GtkAlign; diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 44755b68b1..02fcc5a61d 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -5604,6 +5604,7 @@ adjust_for_align (GtkAlign align, { switch (align) { + case GTK_ALIGN_BASELINE: case GTK_ALIGN_FILL: /* change nothing */ break; @@ -13206,6 +13207,13 @@ gtk_widget_set_halign (GtkWidget *widget, g_object_notify (G_OBJECT (widget), "halign"); } +GtkAlign +gtk_widget_get_valign_with_baseline (GtkWidget *widget) +{ + g_return_val_if_fail (GTK_IS_WIDGET (widget), GTK_ALIGN_FILL); + return _gtk_widget_get_aux_info_or_defaults (widget)->valign; +} + /** * gtk_widget_get_valign: * @widget: a #GtkWidget @@ -13217,8 +13225,12 @@ gtk_widget_set_halign (GtkWidget *widget, GtkAlign gtk_widget_get_valign (GtkWidget *widget) { - g_return_val_if_fail (GTK_IS_WIDGET (widget), GTK_ALIGN_FILL); - return _gtk_widget_get_aux_info_or_defaults (widget)->valign; + GtkAlign align; + + align = gtk_widget_get_valign_with_baseline (widget); + if (align == GTK_ALIGN_BASELINE) + return GTK_ALIGN_FILL; + return align; } /** diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h index bdf8e5e607..c0ff85309b 100644 --- a/gtk/gtkwidget.h +++ b/gtk/gtkwidget.h @@ -756,6 +756,7 @@ GtkAlign gtk_widget_get_halign (GtkWidget *widget); void gtk_widget_set_halign (GtkWidget *widget, GtkAlign align); GtkAlign gtk_widget_get_valign (GtkWidget *widget); +GtkAlign gtk_widget_get_valign_with_baseline (GtkWidget *widget); void gtk_widget_set_valign (GtkWidget *widget, GtkAlign align); gint gtk_widget_get_margin_left (GtkWidget *widget);