projects
/
modest
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
f555d67
)
* Fixes a crash in the dimming rules when a window is destroyed and there are pendin...
author
Sergio Villar Senin
<svillar@igalia.com>
Wed, 2 Jul 2008 18:44:11 +0000
(18:44 +0000)
committer
Sergio Villar Senin
<svillar@igalia.com>
Wed, 2 Jul 2008 18:44:11 +0000
(18:44 +0000)
pmo-trunk-r4870
src/modest-dimming-rules-group.c
patch
|
blob
|
history
diff --git
a/src/modest-dimming-rules-group.c
b/src/modest-dimming-rules-group.c
index
9f74837
..
89c388f
100644
(file)
--- a/
src/modest-dimming-rules-group.c
+++ b/
src/modest-dimming-rules-group.c
@@
-41,6
+41,9
@@
static void modest_dimming_rules_group_finalize (GObject *obj);
static void _insensitive_press_callback (GtkWidget *widget, gpointer user_data);
#endif
static void _insensitive_press_callback (GtkWidget *widget, gpointer user_data);
#endif
+static void on_window_destroy (gpointer data,
+ GObject *object);
+
static void _add_rule (ModestDimmingRulesGroup *self,
ModestDimmingRule *rule,
ModestWindow *window);
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);
/* 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++) {
/* 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);
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);
/* Init dimming rules init data */
state = modest_ui_dimming_rules_define_dimming_state (priv->window);
modest_window_set_dimming_state (priv->window, state);
@@
-359,3
+366,13
@@
_insensitive_press_callback (GtkWidget *widget, gpointer user_data)
g_free(notification);
}
#endif
g_free(notification);
}
#endif
+
+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;
+}