[libgd] notification: Break out two functions



commit a4d5a10797ec235a478eeff7df23d7a48c414bad
Author: Kalev Lember <kalevlember gmail com>
Date:   Sun Mar 1 18:30:15 2015 +0100

    notification: Break out two functions
    
    https://bugzilla.gnome.org/show_bug.cgi?id=710297

 libgd/gd-notification.c |   38 +++++++++++++++++++++++++++-----------
 1 files changed, 27 insertions(+), 11 deletions(-)
---
diff --git a/libgd/gd-notification.c b/libgd/gd-notification.c
index adb51ea..38f047d 100644
--- a/libgd/gd-notification.c
+++ b/libgd/gd-notification.c
@@ -394,6 +394,31 @@ gd_notification_forall (GtkContainer *container,
     (* callback) (priv->close_button, callback_data);
 }
 
+static void
+unqueue_autohide (GdNotification *notification)
+{
+  GdNotificationPrivate *priv = notification->priv;
+
+  if (priv->timeout_source_id)
+    {
+      g_source_remove (priv->timeout_source_id);
+      priv->timeout_source_id = 0;
+    }
+}
+
+static void
+queue_autohide (GdNotification *notification)
+{
+  GdNotificationPrivate *priv = notification->priv;
+
+  if (priv->timeout_source_id == 0 &&
+      priv->timeout != -1)
+    priv->timeout_source_id =
+      gdk_threads_add_timeout (priv->timeout * 1000,
+                               gd_notification_timeout_cb,
+                               notification);
+}
+
 static gboolean
 gd_notification_visibility_notify_event (GtkWidget          *widget,
                                           GdkEventVisibility  *event)
@@ -410,12 +435,7 @@ gd_notification_visibility_notify_event (GtkWidget          *widget,
       priv->waiting_for_viewable = FALSE;
     }
 
-  if (notification->priv->timeout_source_id == 0 &&
-      notification->priv->timeout != -1)
-    notification->priv->timeout_source_id =
-      gdk_threads_add_timeout (notification->priv->timeout * 1000,
-                               gd_notification_timeout_cb,
-                               widget);
+  queue_autohide (notification);
 
   return FALSE;
 }
@@ -795,11 +815,7 @@ gd_notification_dismiss (GdNotification *notification)
 {
   GdNotificationPrivate *priv = notification->priv;
 
-  if (notification->priv->timeout_source_id)
-    {
-      g_source_remove (notification->priv->timeout_source_id);
-      notification->priv->timeout_source_id = 0;
-    }
+  unqueue_autohide (notification);
 
   priv->dismissed = TRUE;
   priv->revealed = FALSE;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]