From 45f2f4d0bd7e180353376d073a1f80af66eec7a0 Mon Sep 17 00:00:00 2001 From: David Hampton Date: Mon, 16 Jun 2003 07:27:59 +0000 Subject: [PATCH] Register with the component manager for ACCOUNT events. Redo the window title when an event is received. Fixes #113164. git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@8628 57a11ea4-9604-0410-9ed3-97b8803252fd --- ChangeLog | 8 ++++++++ src/gnome/window-register.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+) diff --git a/ChangeLog b/ChangeLog index b4543afdc1..e528167f09 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2003-06-16 David Hampton + + * src/gnome/window-register.c: Register with the component manager + for ACCOUNT events. Redo the window title when an event is + received. Fixes #113164. + + * src/app-utils/gnc-component-manager.c: Enhance debugging. + 2003-06-15 David Hampton * src/gnome/gnc-split-reg.c: diff --git a/src/gnome/window-register.c b/src/gnome/window-register.c index 0df604c2ea..53bdc9a47d 100644 --- a/src/gnome/window-register.c +++ b/src/gnome/window-register.c @@ -102,6 +102,7 @@ struct _RegWindow GtkWidget *voided_menu_item; GtkWidget *frozen_menu_item; GtkWidget *unreconciled_menu_item; + gint component_id; }; GtkWidget *gnc_RegWindow_window (RegWindow *data) @@ -732,6 +733,8 @@ gnc_register_destroy_cb(GtkWidget *widget, gpointer data) { RegWindow *regData = data; + gnc_unregister_gui_component (regData->component_id); + if (regData->date_window != NULL) { if (regData->date_window->window != NULL) @@ -845,6 +848,26 @@ gnc_register_size_allocate (GtkWidget *widget, gtk_window_set_default_size( GTK_WINDOW(regData->window), regData->width, 0 ); } +static void +refresh_handler (GHashTable *changes, gpointer user_data) +{ + RegWindow *regData = user_data; + + gnc_reg_set_window_name (regData); +} + +static void +close_handler (gpointer user_data) +{ + RegWindow *regData = user_data; + + if (!regData) + return; + + gnc_register_delete_cb(NULL, NULL, regData); + gnc_register_destroy_cb(NULL, regData); +} + /********************************************************************\ * regWindowLedger * * opens up a ledger window for the account list * @@ -1015,6 +1038,14 @@ regWindowLedger( GNCLedgerDisplay *ledger ) gnc_ledger_display_refresh( regData->ledger ); } + /* Get event updates so we can check the window title */ + regData->component_id = gnc_register_gui_component ("register-window", + refresh_handler, + close_handler, regData); + + gnc_gui_component_watch_entity_type (regData->component_id, + GNC_ID_ACCOUNT, + GNC_EVENT_MODIFY); return regData; }