box gadget: Implement cross-axis alignment
So far, the box gadget is always allocating all children the full size in the cross axis. This behavior corresponds to the align-items: stretch behavior in https://www.w3.org/TR/css-flexbox-1/#align-items-property This commit implements the other modes described there. While widgets have halign/valign properties that we can use for this, the API for inserting gadgets has to change to take an extra align parameter. All callers have been updated to pass GTK_ALIGN_FILL, since that corresponds to the previous behavior. https://bugzilla.gnome.org/show_bug.cgi?id=760668
This commit is contained in:
@ -1312,7 +1312,7 @@ gtk_notebook_init (GtkNotebook *notebook)
|
||||
NULL,
|
||||
NULL);
|
||||
gtk_css_gadget_set_state (priv->stack_gadget, gtk_css_node_get_state (widget_node));
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), -1, priv->stack_gadget, TRUE, TRUE);
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), -1, priv->stack_gadget, TRUE, TRUE, GTK_ALIGN_FILL);
|
||||
|
||||
priv->header_gadget = gtk_box_gadget_new ("header",
|
||||
GTK_WIDGET (notebook),
|
||||
@ -1321,7 +1321,7 @@ gtk_notebook_init (GtkNotebook *notebook)
|
||||
gtk_css_gadget_add_class (priv->header_gadget, GTK_STYLE_CLASS_TOP);
|
||||
gtk_css_gadget_set_state (priv->header_gadget, gtk_css_node_get_state (widget_node));
|
||||
gtk_css_gadget_set_visible (priv->header_gadget, FALSE);
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), 0, priv->header_gadget, FALSE, FALSE);
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), 0, priv->header_gadget, FALSE, FALSE, GTK_ALIGN_FILL);
|
||||
|
||||
priv->tabs_gadget = gtk_css_custom_gadget_new ("tabs",
|
||||
GTK_WIDGET (notebook),
|
||||
@ -1333,7 +1333,7 @@ gtk_notebook_init (GtkNotebook *notebook)
|
||||
NULL,
|
||||
NULL);
|
||||
gtk_css_gadget_set_state (priv->tabs_gadget, gtk_css_node_get_state (widget_node));
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->header_gadget), 0, priv->tabs_gadget, TRUE, TRUE);
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->header_gadget), 0, priv->tabs_gadget, TRUE, TRUE, GTK_ALIGN_FILL);
|
||||
}
|
||||
|
||||
static void
|
||||
@ -7014,28 +7014,28 @@ gtk_notebook_update_tab_pos (GtkNotebook *notebook)
|
||||
{
|
||||
case GTK_POS_TOP:
|
||||
if (priv->show_tabs)
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), 0, priv->header_gadget, FALSE, FALSE);
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), 0, priv->header_gadget, FALSE, FALSE, GTK_ALIGN_FILL);
|
||||
gtk_box_gadget_set_orientation (GTK_BOX_GADGET (priv->gadget), GTK_ORIENTATION_VERTICAL);
|
||||
gtk_box_gadget_set_orientation (GTK_BOX_GADGET (priv->header_gadget), GTK_ORIENTATION_HORIZONTAL);
|
||||
break;
|
||||
|
||||
case GTK_POS_BOTTOM:
|
||||
if (priv->show_tabs)
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), 1, priv->header_gadget, FALSE, FALSE);
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), 1, priv->header_gadget, FALSE, FALSE, GTK_ALIGN_FILL);
|
||||
gtk_box_gadget_set_orientation (GTK_BOX_GADGET (priv->gadget), GTK_ORIENTATION_VERTICAL);
|
||||
gtk_box_gadget_set_orientation (GTK_BOX_GADGET (priv->header_gadget), GTK_ORIENTATION_HORIZONTAL);
|
||||
break;
|
||||
|
||||
case GTK_POS_LEFT:
|
||||
if (priv->show_tabs)
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), 0, priv->header_gadget, FALSE, FALSE);
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), 0, priv->header_gadget, FALSE, FALSE, GTK_ALIGN_FILL);
|
||||
gtk_box_gadget_set_orientation (GTK_BOX_GADGET (priv->gadget), GTK_ORIENTATION_HORIZONTAL);
|
||||
gtk_box_gadget_set_orientation (GTK_BOX_GADGET (priv->header_gadget), GTK_ORIENTATION_VERTICAL);
|
||||
break;
|
||||
|
||||
case GTK_POS_RIGHT:
|
||||
if (priv->show_tabs)
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), 1, priv->header_gadget, FALSE, FALSE);
|
||||
gtk_box_gadget_insert_gadget (GTK_BOX_GADGET (priv->gadget), 1, priv->header_gadget, FALSE, FALSE, GTK_ALIGN_FILL);
|
||||
gtk_box_gadget_set_orientation (GTK_BOX_GADGET (priv->gadget), GTK_ORIENTATION_HORIZONTAL);
|
||||
gtk_box_gadget_set_orientation (GTK_BOX_GADGET (priv->header_gadget), GTK_ORIENTATION_VERTICAL);
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user