menusectionbox: Improve circular button spacing

In the n == 2 case, we want to avoid the buttons being
drawn all the way out to the ends of the box, but in the
n >= 3 case, that is exactly what we want for the first
and last button.
This commit is contained in:
Matthias Clasen 2020-04-22 22:16:46 -04:00
parent 8b1e857a67
commit ba45d7a991

View File

@ -393,6 +393,26 @@ gtk_menu_section_box_insert_func (GtkMenuTrackerItem *item,
gtk_box_reorder_child_after (GTK_BOX (box->item_box), widget, sibling);
}
if (box->circular)
{
GtkWidget *c1, *c2, *c3;
/* special-case the n > 2 case */
c1 = gtk_widget_get_first_child (GTK_WIDGET (box->item_box));
if ((c2 = gtk_widget_get_next_sibling (c1)) != NULL &&
(c3 = gtk_widget_get_next_sibling (c2)) != NULL)
{
gtk_widget_set_halign (c1, GTK_ALIGN_START);
while (c3 != NULL)
{
gtk_widget_set_halign (c2, GTK_ALIGN_CENTER);
c2 = c3;
c3 = gtk_widget_get_next_sibling (c3);
}
gtk_widget_set_halign (c2, GTK_ALIGN_END);
}
}
gtk_menu_section_box_schedule_separator_sync (box);
}