* src/hildon2/modest-header-window.c: sync header changes on dispose of
header window instead of finalize, as now, the folder in header view
is unreferenced in dispose stage, and then sync was not working
(fixes NB#138247).
static void modest_header_window_class_init (ModestHeaderWindowClass *klass);
static void modest_header_window_init (ModestHeaderWindow *obj);
static void modest_header_window_finalize (GObject *obj);
static void modest_header_window_class_init (ModestHeaderWindowClass *klass);
static void modest_header_window_init (ModestHeaderWindow *obj);
static void modest_header_window_finalize (GObject *obj);
+static void modest_header_window_dispose (GObject *obj);
static void connect_signals (ModestHeaderWindow *self);
static void modest_header_window_disconnect_signals (ModestWindow *self);
static void connect_signals (ModestHeaderWindow *self);
static void modest_header_window_disconnect_signals (ModestWindow *self);
parent_class = g_type_class_peek_parent (klass);
gobject_class->finalize = modest_header_window_finalize;
parent_class = g_type_class_peek_parent (klass);
gobject_class->finalize = modest_header_window_finalize;
+ gobject_class->dispose = modest_header_window_dispose;
g_type_class_add_private (gobject_class, sizeof(ModestHeaderWindowPrivate));
g_type_class_add_private (gobject_class, sizeof(ModestHeaderWindowPrivate));
-modest_header_window_finalize (GObject *obj)
+modest_header_window_dispose (GObject *obj)
{
ModestHeaderWindowPrivate *priv;
TnyFolder *folder;
priv = MODEST_HEADER_WINDOW_GET_PRIVATE(obj);
{
ModestHeaderWindowPrivate *priv;
TnyFolder *folder;
priv = MODEST_HEADER_WINDOW_GET_PRIVATE(obj);
+ folder = modest_header_view_get_folder ((ModestHeaderView *) priv->header_view);
+ if (folder) {
+ tny_folder_sync_async (folder, FALSE, NULL, NULL, NULL);
+ g_object_unref (folder);
+ }
+
+ G_OBJECT_CLASS(parent_class)->dispose (obj);
+}
+
+static void
+modest_header_window_finalize (GObject *obj)
+{
+ ModestHeaderWindowPrivate *priv;
+
+ priv = MODEST_HEADER_WINDOW_GET_PRIVATE(obj);
+
if (priv->model_weak_ref) {
g_object_weak_unref ((GObject *) priv->model_weak_ref,
on_header_view_model_destroyed,
if (priv->model_weak_ref) {
g_object_weak_unref ((GObject *) priv->model_weak_ref,
on_header_view_model_destroyed,
on_header_view_model_destroyed (obj, (GObject *) priv->model_weak_ref);
}
on_header_view_model_destroyed (obj, (GObject *) priv->model_weak_ref);
}
- folder = modest_header_view_get_folder ((ModestHeaderView *) priv->header_view);
- if (folder) {
- tny_folder_sync_async (folder, FALSE, NULL, NULL, NULL);
- g_object_unref (folder);
- }
-
modest_header_window_disconnect_signals (MODEST_WINDOW (obj));
g_object_unref (priv->header_view);
modest_header_window_disconnect_signals (MODEST_WINDOW (obj));
g_object_unref (priv->header_view);