Correct errors in hildon_format_file-size_for_display
[hildon] / hildon / hildon-note.c
index b2160c7..53ca1e9 100644 (file)
@@ -415,6 +415,7 @@ hildon_note_init                                (HildonNote *dialog)
     priv->event_box = gtk_event_box_new ();
     priv->icon = NULL;
     priv->stock_icon = NULL;
+    priv->idle_handler = 0;
 
     gtk_event_box_set_visible_window (GTK_EVENT_BOX (priv->event_box), FALSE);
     gtk_event_box_set_above_child (GTK_EVENT_BOX (priv->event_box), TRUE);
@@ -463,6 +464,10 @@ hildon_note_finalize                            (GObject *obj_self)
         g_free (priv->stock_icon);
         priv->stock_icon = NULL;
     }
+    if (priv->idle_handler) {
+        g_source_remove (priv->idle_handler);
+        priv->idle_handler = 0;
+    }
 
     if (priv->progressbar)
         g_object_unref (priv->progressbar);
@@ -1025,7 +1030,10 @@ static void
 on_show_cb                                      (GtkWidget *widget,
                                                  gpointer data)
 {
-    g_idle_add (sound_handling, widget);
+    HildonNotePrivate *priv;
+
+    priv = HILDON_NOTE_GET_PRIVATE (widget);
+    priv->idle_handler = g_idle_add (sound_handling, widget);
 }
 
 /* We play a system sound when the note comes visible */
@@ -1051,5 +1059,7 @@ sound_handling                                  (gpointer data)
             break;
     };
 
+    priv->idle_handler = 0;
+
     return FALSE;
 }