file chooser dialog: Prevent uneven button heights

The height of the text buttons depends on the font height,
whereas the search button has a fixed-size icon in it...
Prevent unevent heights by putting them all in a size group.

https://bugzilla.gnome.org/show_bug.cgi?id=745263
This commit is contained in:
Matthias Clasen
2015-02-26 21:15:19 -05:00
parent 6855e1eec3
commit f96f69996a
2 changed files with 17 additions and 0 deletions

View File

@ -201,6 +201,8 @@ struct _GtkFileChooserDialogPrivate
{ {
GtkWidget *widget; GtkWidget *widget;
GtkSizeGroup *buttons;
/* for use with GtkFileChooserEmbed */ /* for use with GtkFileChooserEmbed */
gboolean response_requested; gboolean response_requested;
gboolean search_setup; gboolean search_setup;
@ -256,6 +258,7 @@ gtk_file_chooser_dialog_class_init (GtkFileChooserDialogClass *class)
"/org/gtk/libgtk/ui/gtkfilechooserdialog.ui"); "/org/gtk/libgtk/ui/gtkfilechooserdialog.ui");
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserDialog, widget); gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserDialog, widget);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserDialog, buttons);
gtk_widget_class_bind_template_callback (widget_class, response_cb); gtk_widget_class_bind_template_callback (widget_class, response_cb);
gtk_widget_class_bind_template_callback (widget_class, file_chooser_widget_file_activated); gtk_widget_class_bind_template_callback (widget_class, file_chooser_widget_file_activated);
gtk_widget_class_bind_template_callback (widget_class, file_chooser_widget_default_size_changed); gtk_widget_class_bind_template_callback (widget_class, file_chooser_widget_default_size_changed);
@ -473,6 +476,15 @@ gtk_file_chooser_dialog_get_property (GObject *object,
g_object_get_property (G_OBJECT (priv->widget), pspec->name, value); g_object_get_property (G_OBJECT (priv->widget), pspec->name, value);
} }
static void
add_button (GtkWidget *button, gpointer data)
{
GtkFileChooserDialog *dialog = data;
if (GTK_IS_BUTTON (button))
gtk_size_group_add_widget (dialog->priv->buttons, button);
}
static void static void
setup_search (GtkFileChooserDialog *dialog) setup_search (GtkFileChooserDialog *dialog)
{ {
@ -505,6 +517,8 @@ setup_search (GtkFileChooserDialog *dialog)
g_object_bind_property (button, "active", g_object_bind_property (button, "active",
dialog->priv->widget, "search-mode", dialog->priv->widget, "search-mode",
G_BINDING_BIDIRECTIONAL); G_BINDING_BIDIRECTIONAL);
gtk_container_forall (GTK_CONTAINER (header), add_button, dialog);
} }
} }

View File

@ -53,4 +53,7 @@
</object> </object>
</child> </child>
</template> </template>
<object class="GtkSizeGroup" id="buttons">
<property name="mode">vertical</property>
</object>
</interface> </interface>