[gtk+] Fix filechooser actionbar visibility
- From: Matthias Clasen <matthiasc src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] Fix filechooser actionbar visibility
- Date: Sat, 24 May 2014 04:02:34 +0000 (UTC)
commit 0011c9dae4d7c1bf11da525c35dd9530842bdc31
Author: Matthias Clasen <mclasen redhat com>
Date: Sat May 24 00:00:00 2014 -0400
Fix filechooser actionbar visibility
The actionbar was always visible, even when there is no filter
and no extra widget to show. Now we only show it when there is
something to show.
gtk/gtkfilechooserwidget.c | 14 ++++++++++++++
gtk/resources/ui/gtkfilechooserwidget.ui | 4 +++-
2 files changed, 17 insertions(+), 1 deletions(-)
---
diff --git a/gtk/gtkfilechooserwidget.c b/gtk/gtkfilechooserwidget.c
index 8120dec..bbb0e43 100644
--- a/gtk/gtkfilechooserwidget.c
+++ b/gtk/gtkfilechooserwidget.c
@@ -238,6 +238,7 @@ struct _GtkFileChooserWidgetPrivate {
GtkFileSystemModel *recent_model;
guint load_recent_id;
+ GtkWidget *extra_and_filters;
GtkWidget *filter_combo_hbox;
GtkWidget *filter_combo;
GtkWidget *preview_box;
@@ -2183,6 +2184,14 @@ gtk_file_chooser_widget_constructor (GType type,
return object;
}
+static void
+update_extra_and_filters (GtkFileChooserWidget *impl)
+{
+ gtk_widget_set_visible (impl->priv->extra_and_filters,
+ gtk_widget_get_visible (impl->priv->extra_align) ||
+ gtk_widget_get_visible (impl->priv->filter_combo_hbox));
+}
+
/* Sets the extra_widget by packing it in the appropriate place */
static void
set_extra_widget (GtkFileChooserWidget *impl,
@@ -2211,6 +2220,8 @@ set_extra_widget (GtkFileChooserWidget *impl,
}
else
gtk_widget_hide (priv->extra_align);
+
+ update_extra_and_filters (impl);
}
static void
@@ -4881,6 +4892,8 @@ show_filters (GtkFileChooserWidget *impl,
gtk_widget_show (priv->filter_combo_hbox);
else
gtk_widget_hide (priv->filter_combo_hbox);
+
+ update_extra_and_filters (impl);
}
static void
@@ -7334,6 +7347,7 @@ gtk_file_chooser_widget_class_init (GtkFileChooserWidgetClass *class)
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, filter_combo);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, preview_box);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, extra_align);
+ gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, extra_and_filters);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, location_entry_box);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, location_label);
gtk_widget_class_bind_template_child_private (widget_class, GtkFileChooserWidget, search_bar);
diff --git a/gtk/resources/ui/gtkfilechooserwidget.ui b/gtk/resources/ui/gtkfilechooserwidget.ui
index bfc827f..83fb3c6 100644
--- a/gtk/resources/ui/gtkfilechooserwidget.ui
+++ b/gtk/resources/ui/gtkfilechooserwidget.ui
@@ -291,15 +291,17 @@
</child>
<child>
<object class="GtkActionBar" id="extra_and_filters">
- <property name="visible">True</property>
+ <property name="no-show-all">True</property>
<child>
<object class="GtkBox" id="extra_align">
+ <property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">12</property>
</object>
</child>
<child>
<object class="GtkBox" id="filter_combo_hbox">
+ <property name="visible">True</property>
<property name="can_focus">False</property>
<property name="spacing">12</property>
<child>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]