diff options
| author | Ted Gould <ted@gould.cx> | 2006-03-29 05:42:57 +0000 |
|---|---|---|
| committer | gouldtj <gouldtj@users.sourceforge.net> | 2006-03-29 05:42:57 +0000 |
| commit | 7b7f9666b25e8fd5a6e6601013d25e9895569807 (patch) | |
| tree | bb947983d2692c82bf4f7eb9552024418c8425a6 /src/ui/dialog/extension-editor.cpp | |
| parent | (bzr r352) (diff) | |
| download | inkscape-7b7f9666b25e8fd5a6e6601013d25e9895569807.tar.gz inkscape-7b7f9666b25e8fd5a6e6601013d25e9895569807.zip | |
r11026@tres: ted | 2006-03-02 00:03:49 -0800
Well, adding an unparent() here seems to make things much happier. I'm
not sure why remove() doesn't do an unparent() also, I think this may
be a bug in GTKmm where it assumes that other code won't have a reference
to an object, but I'm not sure. Anyway, this should be safe even if
the bug is fixed, and it works now.
(bzr r353)
Diffstat (limited to 'src/ui/dialog/extension-editor.cpp')
| -rw-r--r-- | src/ui/dialog/extension-editor.cpp | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/ui/dialog/extension-editor.cpp b/src/ui/dialog/extension-editor.cpp index ed9d020c7..d642805c1 100644 --- a/src/ui/dialog/extension-editor.cpp +++ b/src/ui/dialog/extension-editor.cpp @@ -154,7 +154,9 @@ ExtensionEditor::on_pagelist_selection_changed (void) if (info == NULL) { info = Inkscape::Extension::db.get(id.c_str())->get_info_widget(); row[_page_list_columns._col_info] = info; - //info->ref(); + info->reference(); + } else { + info->unparent(); } Gtk::Widget * help; @@ -162,7 +164,9 @@ ExtensionEditor::on_pagelist_selection_changed (void) if (help == NULL) { help = Inkscape::Extension::db.get(id.c_str())->get_help_widget(); row[_page_list_columns._col_help] = help; - //help->ref(); + help->reference(); + } else { + help->unparent(); } Gtk::Widget * params; @@ -170,7 +174,9 @@ ExtensionEditor::on_pagelist_selection_changed (void) if (params == NULL) { params = Inkscape::Extension::db.get(id.c_str())->get_params_widget(); row[_page_list_columns._col_params] = params; - //params->ref(); + params->reference(); + } else { + params->unparent(); } /* Place them in the pages */ |
