summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRay Strode <rstrode@redhat.com>2008-03-10 13:53:37 +0000
committerRay Strode <halfline@src.gnome.org>2008-03-10 13:53:37 +0000
commit834707e9764e8d59e36281b8dbdc96aff0c89288 (patch)
treee07169f1ec2a50a5a098e8dac335e136bfb108e9
parentecf33573b7fb4332a63c20ad64bae9c853684dc7 (diff)
downloadgdm-834707e9764e8d59e36281b8dbdc96aff0c89288.tar.gz
gui/simple-greeter/gdm-chooser-widget.c: (start_timer), (stop_timer):
2008-03-10 Ray Strode <rstrode@redhat.com> gui/simple-greeter/gdm-chooser-widget.c: (start_timer), (stop_timer): Actually remove high frequency timeout when timer is stopped... svn path=/trunk/; revision=5980
-rw-r--r--ChangeLog6
-rw-r--r--gui/simple-greeter/gdm-chooser-widget.c8
2 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index 0bab9123..de0c0678 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,10 @@
2008-03-10 Ray Strode <rstrode@redhat.com>
+ gui/simple-greeter/gdm-chooser-widget.c:
+ (start_timer), (stop_timer):
+ Actually remove high frequency timeout when
+ timer is stopped...
+
+2008-03-10 Ray Strode <rstrode@redhat.com>
* daemon/Makefile.am: add gdm-session-direct.xml to
EXTRA_DIST
diff --git a/gui/simple-greeter/gdm-chooser-widget.c b/gui/simple-greeter/gdm-chooser-widget.c
index 1ae60a4c..e9f433c1 100644
--- a/gui/simple-greeter/gdm-chooser-widget.c
+++ b/gui/simple-greeter/gdm-chooser-widget.c
@@ -82,6 +82,7 @@ struct GdmChooserWidgetPrivate
gint number_of_separated_rows;
gint number_of_rows_with_status;
gint number_of_rows_with_images;
+ gint number_of_active_timers;
guint update_idle_id;
guint animation_timeout_id;
@@ -2034,6 +2035,7 @@ start_timer (GdmChooserWidget *widget,
gtk_list_store_set (widget->priv->list_store, &iter,
CHOOSER_TIMER_VALUE_COLUMN, 0.0, -1);
+ widget->priv->number_of_active_timers++;
if (widget->priv->timer_animation_timeout_id == 0) {
g_assert (g_hash_table_size (widget->priv->rows_with_timers) == 1);
@@ -2067,6 +2069,12 @@ stop_timer (GdmChooserWidget *widget,
0.0, -1);
gtk_list_store_set (widget->priv->list_store, &iter,
CHOOSER_TIMER_VALUE_COLUMN, 0.0, -1);
+
+ widget->priv->number_of_active_timers--;
+ if (widget->priv->number_of_active_timers == 0) {
+ g_source_remove (widget->priv->timer_animation_timeout_id);
+ widget->priv->timer_animation_timeout_id = 0;
+ }
}
static void