summaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorWilliam Jon McCann <jmccann@redhat.com>2010-06-11 04:18:50 -0400
committerWilliam Jon McCann <jmccann@redhat.com>2010-06-11 04:20:05 -0400
commitc4a4a6f13565a398e3e14cfc38bc71c1777b0da3 (patch)
treef4355f7df22bfa4d40333199e986be2de5a05942 /gui
parent706a532dffa717f25c4af9c0491c906cead1116c (diff)
downloadgdm-c4a4a6f13565a398e3e14cfc38bc71c1777b0da3.tar.gz
Make list-visible be a real property
Don't keep sending out notify events on every update
Diffstat (limited to 'gui')
-rw-r--r--gui/simple-greeter/gdm-chooser-widget.c19
1 files changed, 16 insertions, 3 deletions
diff --git a/gui/simple-greeter/gdm-chooser-widget.c b/gui/simple-greeter/gdm-chooser-widget.c
index 57c41890..751e2eba 100644
--- a/gui/simple-greeter/gdm-chooser-widget.c
+++ b/gui/simple-greeter/gdm-chooser-widget.c
@@ -94,6 +94,8 @@ struct GdmChooserWidgetPrivate
guint update_items_idle_id;
guint timer_animation_timeout_id;
+ gboolean list_visible;
+
guint32 should_hide_inactive_items : 1;
guint32 emit_activated_after_resize_animation : 1;
@@ -679,6 +681,16 @@ update_visible_items (GdmChooserWidget *widget)
return FALSE;
}
+static void
+set_chooser_list_visible (GdmChooserWidget *widget,
+ gboolean is_visible)
+{
+ if (widget->priv->list_visible != is_visible) {
+ widget->priv->list_visible = is_visible;
+ g_object_notify (G_OBJECT (widget), "list-visible");
+ }
+}
+
static gboolean
update_chooser_visibility (GdmChooserWidget *widget)
{
@@ -689,7 +701,8 @@ update_chooser_visibility (GdmChooserWidget *widget)
} else {
gtk_widget_hide (widget->priv->frame);
}
- g_object_notify (G_OBJECT (widget), "list-visible");
+
+ set_chooser_list_visible (widget, TRUE);
widget->priv->update_visibility_idle_id = 0;
@@ -1248,7 +1261,7 @@ gdm_chooser_widget_get_property (GObject *object,
g_value_set_string (value, self->priv->active_text);
break;
case PROP_LIST_VISIBLE:
- g_value_set_boolean (value, gtk_widget_get_visible (self->priv->scrollable_widget));
+ g_value_set_boolean (value, self->priv->list_visible);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -1442,7 +1455,7 @@ gdm_chooser_widget_class_init (GdmChooserWidgetClass *klass)
g_param_spec_boolean ("list-visible",
_("List Visible"),
_("Whether the chooser list is visible"),
- TRUE,
+ FALSE,
G_PARAM_READABLE));
g_type_class_add_private (klass, sizeof (GdmChooserWidgetPrivate));