X-Git-Url: http://vcs.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-dimming-rules-group.c;h=c5bab55c143e00c0962d08f19f5d3392b9094a4b;hb=569a9d28e068aa191e72b27623a1908b328ebdb5;hp=a7459e3923b35ae7dc2a1a6eb20218aa99db4385;hpb=d52419828f1ad7030744ad53eb7f86fd1937e90b;p=modest diff --git a/src/modest-dimming-rules-group.c b/src/modest-dimming-rules-group.c index a7459e3..c5bab55 100644 --- a/src/modest-dimming-rules-group.c +++ b/src/modest-dimming-rules-group.c @@ -39,6 +39,9 @@ static void modest_dimming_rules_group_finalize (GObject *obj); static void _insensitive_press_callback (GtkWidget *widget, gpointer user_data); +static void on_window_destroy (gpointer data, + GObject *object); + static void _add_rule (ModestDimmingRulesGroup *self, ModestDimmingRule *rule, ModestWindow *window); @@ -250,6 +253,7 @@ modest_dimming_rules_group_add_rules (ModestDimmingRulesGroup *self, /* Set window to process dimming rules */ priv->window = MODEST_WINDOW (window); + g_object_weak_ref (G_OBJECT (window), on_window_destroy, self); /* Add dimming rules */ for (i=0; i < n_elements; i++) { @@ -296,6 +300,9 @@ modest_dimming_rules_group_execute (ModestDimmingRulesGroup *self) g_return_if_fail (MODEST_IS_DIMMING_RULES_GROUP(self)); priv = MODEST_DIMMING_RULES_GROUP_GET_PRIVATE(self); + if (!priv->window) + return; + /* Init dimming rules init data */ state = modest_ui_dimming_rules_define_dimming_state (priv->window); modest_window_set_dimming_state (priv->window, state); @@ -357,3 +364,13 @@ _insensitive_press_callback (GtkWidget *widget, gpointer user_data) if (notification != NULL) g_free(notification); } + +static void +on_window_destroy (gpointer data, + GObject *object) +{ + ModestDimmingRulesGroup *self = MODEST_DIMMING_RULES_GROUP (data); + ModestDimmingRulesGroupPrivate *priv = MODEST_DIMMING_RULES_GROUP_GET_PRIVATE (self); + + priv->window = NULL; +}