+2007-04-19 Michael Dominic Kostrzewa <michael.kostrzewa@nokia.com>
+
+ * src/hildon-banner.c: Fixing a problem with timed banners having
+ their parrent destroyed before they are.
+
2007-04-17 Xan Lopez <xan.lopez@nokia.com>
* src/hildon-bread-crumb.c:
guint n_construct_params,
GObjectConstructParam *construct_params);
+static void
+hildon_banner_finalize (GObject *object);
+
static gboolean
hildon_banner_map_event (GtkWidget *widget,
GdkEventAny *event);
case PROP_PARENT_WINDOW:
window = g_value_get_object (value);
+ if (priv->parent) {
+ g_object_remove_weak_pointer(G_OBJECT (priv->parent), (gpointer *)&priv->parent);
+ }
gtk_window_set_transient_for (GTK_WINDOW (object), (GtkWindow *) window);
priv->parent = (GtkWindow *) window;
- if (window)
+ if (window) {
gtk_window_set_destroy_with_parent (GTK_WINDOW (object), TRUE);
+ g_object_add_weak_pointer(G_OBJECT (window), (gpointer *)&priv->parent);
+ }
break;
return banner;
}
+static void
+hildon_banner_finalize (GObject *object)
+{
+ HildonBannerPrivate *priv = HILDON_BANNER_GET_PRIVATE (object);
+
+ if (priv->parent) {
+ g_object_remove_weak_pointer(G_OBJECT (priv->parent), (gpointer *)&priv->parent);
+ }
+
+ G_OBJECT_CLASS (parent_class)->finalize (object);
+}
+
/* We start the timer for timed notifications after the window appears on screen */
static gboolean
hildon_banner_map_event (GtkWidget *widget,
/* Override virtual methods */
object_class->constructor = hildon_banner_constructor;
+ object_class->finalize = hildon_banner_finalize;
object_class->set_property = hildon_banner_set_property;
object_class->get_property = hildon_banner_get_property;
GTK_OBJECT_CLASS (klass)->destroy = hildon_banner_destroy;