Correct SX editor and Since Last Run dialog to close their register plugin pages instead of only the ledgers. Fix 334627.

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@13666 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Andreas Köhler 2006-03-18 15:05:33 +00:00
parent a999514bb0
commit ae0f6cf1e7
4 changed files with 29 additions and 8 deletions

View File

@ -1,3 +1,11 @@
2006-03-18 Andreas Köhler <andi5.py@gmx.net>
* src/gnome-utils/gnc-embedded-window.c:
* src/gnome/dialog-sxsincelast.c:
* src/gnome/dialog-scheduledxaction.c: Correct SX editor and Since
Last Run dialog to close their register plugin pages instead of
only the ledgers. Fix 334627.
2006-03-18 Christian Stimming <stimming@tuhh.de>
* src/scm/doc.scm, src/scm/main.scm: Comment out

View File

@ -163,14 +163,15 @@ gnc_embedded_window_close_page (GncEmbeddedWindow *window,
ENTER("window %p, page %p", window, page);
g_return_if_fail (GNC_IS_EMBEDDED_WINDOW (window));
g_return_if_fail (GNC_IS_PLUGIN_PAGE (page));
priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
g_return_if_fail (priv->page == page);
if (!page->notebook_page) {
LEAVE("no displayed widget");
return;
}
priv = GNC_EMBEDDED_WINDOW_GET_PRIVATE(window);
gtk_container_remove (GTK_CONTAINER(window), GTK_WIDGET(priv->page));
gtk_container_remove (GTK_CONTAINER(window), GTK_WIDGET(page->notebook_page));
priv->page = NULL;
gnc_plugin_page_removed (page);

View File

@ -1169,9 +1169,10 @@ scheduledxaction_editor_dialog_destroy(GtkObject *object, gpointer data)
}
sxed->sx = NULL;
/* We don't need to deal with the ledger, as the gncRegWidget will do
* so for us. [Is this still true?? -- jsled] */
gnc_ledger_display_close( sxed->ledger );
gnc_embedded_window_close_page(sxed->embed_window, sxed->plugin_page);
gtk_widget_destroy(GTK_WIDGET(sxed->embed_window));
sxed->embed_window = NULL;
sxed->plugin_page = NULL;
sxed->ledger = NULL;
g_free (sxed->sxGUIDstr);

View File

@ -2383,13 +2383,24 @@ sxsincelast_destroy( GtkObject *o, gpointer ud )
/* appropriate place to destroy data structures */
clean_sincelast_data( sxsld );
gnc_ledger_display_close( sxsld->ac_ledger );
gnc_embedded_window_close_page(sxsld->ac_window, sxsld->ac_register);
gtk_widget_destroy(GTK_WIDGET(sxsld->ac_window));
sxsld->ac_window = NULL;
sxsld->ac_register = NULL;
sxsld->ac_ledger = NULL;
gnc_ledger_display_close( sxsld->created_ledger );
gnc_embedded_window_close_page(sxsld->created_window,
sxsld->created_register);
gtk_widget_destroy(GTK_WIDGET(sxsld->created_window));
sxsld->created_window = NULL;
sxsld->created_register = NULL;
sxsld->created_ledger = NULL;
gnc_ledger_display_close( sxsld->to_create_ledger );
gnc_embedded_window_close_page(sxsld->to_create_window,
sxsld->to_create_register);
gtk_widget_destroy(GTK_WIDGET(sxsld->to_create_window));
sxsld->to_create_window = NULL;
sxsld->to_create_register = NULL;
sxsld->to_create_ledger = NULL;
gnc_unregister_gui_component_by_data( DIALOG_SXSINCELAST_CM_CLASS,