[dia] Split part of Diagram::finalize into dispose, signals need a living object
- From: Hans Breuer <hans src gnome org>
- To: svn-commits-list gnome org
- Subject: [dia] Split part of Diagram::finalize into dispose, signals need a living object
- Date: Sun, 31 May 2009 05:47:01 -0400 (EDT)
commit f1d8065f807798845534d9ff8366874e24ec9e70
Author: Hans Breuer <hans breuer org>
Date: Sat Apr 25 22:44:31 2009 +0200
Split part of Diagram::finalize into dispose, signals need a living object
---
app/diagram.c | 24 +++++++++++++++++++-----
1 files changed, 19 insertions(+), 5 deletions(-)
diff --git a/app/diagram.c b/app/diagram.c
index fb2a292..c05d064 100644
--- a/app/diagram.c
+++ b/app/diagram.c
@@ -99,23 +99,34 @@ diagram_get_type (void)
}
static void
-diagram_finalize(GObject *object)
+diagram_dispose (GObject *object)
{
Diagram *dia = DIA_DIAGRAM(object);
assert(dia->displays==NULL);
- open_diagrams = g_list_remove(open_diagrams, dia);
- layer_dialog_update_diagram_list();
+ if (g_list_index(open_diagrams, dia) >= 0) {
+ dia_diagram_remove(dia);
+
+ open_diagrams = g_list_remove(open_diagrams, dia);
+ layer_dialog_update_diagram_list();
+ }
if (dia->undo)
undo_destroy(dia->undo);
dia->undo = NULL;
- dia_diagram_remove(dia);
-
diagram_cleanup_autosave(dia);
+ G_OBJECT_CLASS (parent_class)->dispose (object);
+}
+static void
+diagram_finalize(GObject *object)
+{
+ Diagram *dia = DIA_DIAGRAM(object);
+
+ assert(dia->displays==NULL);
+
if (dia->filename)
g_free(dia->filename);
dia->filename = NULL;
@@ -163,6 +174,7 @@ diagram_class_init (DiagramClass *klass)
klass->selection_changed = _diagram_selection_changed;
object_class->finalize = diagram_finalize;
+ object_class->dispose = diagram_dispose;
}
GList *
@@ -321,6 +333,8 @@ diagram_load(const char *filename, DiaImportFilter *ifilter)
diagram_set_modified(diagram, FALSE);
if (app_is_interactive()) {
recent_file_history_add(filename);
+ if (was_default) /* replacing it is like first remove than add */
+ dia_diagram_remove(diagram);
dia_diagram_add(diagram);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]