From 668aab4a2b31c1ee770b90127fcc76b309bc2349 Mon Sep 17 00:00:00 2001 From: Mike Alexander Date: Mon, 1 Sep 2014 01:36:06 -0400 Subject: [PATCH] If the cursor moves from one register cell to another, refresh the register headers. If trading accounts are on and the transaction is expanded then the headers depend on the type of split the cursor is in. --- src/register/register-gnome/gnucash-header.c | 2 +- src/register/register-gnome/gnucash-header.h | 1 + src/register/register-gnome/gnucash-sheet.c | 4 ++++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/register/register-gnome/gnucash-header.c b/src/register/register-gnome/gnucash-header.c index dddd7bb47c..7d902d5c88 100644 --- a/src/register/register-gnome/gnucash-header.c +++ b/src/register/register-gnome/gnucash-header.c @@ -222,7 +222,7 @@ gnc_header_draw (GnomeCanvasItem *item, GdkDrawable *drawable, } -static void +void gnc_header_request_redraw (GncHeader *header) { GnomeCanvas *canvas = GNOME_CANVAS_ITEM(header)->canvas; diff --git a/src/register/register-gnome/gnucash-header.h b/src/register/register-gnome/gnucash-header.h index 553ca3b7da..fa2091a715 100644 --- a/src/register/register-gnome/gnucash-header.h +++ b/src/register/register-gnome/gnucash-header.h @@ -64,6 +64,7 @@ typedef struct GtkWidget *gnc_header_new (GnucashSheet *sheet); void gnc_header_reconfigure (GncHeader *header); +void gnc_header_request_redraw (GncHeader *header); void gnc_header_set_header_rows (GncHeader *header, int num_phys_rows); diff --git a/src/register/register-gnome/gnucash-sheet.c b/src/register/register-gnome/gnucash-sheet.c index 348236d585..1c17b76fd0 100644 --- a/src/register/register-gnome/gnucash-sheet.c +++ b/src/register/register-gnome/gnucash-sheet.c @@ -348,6 +348,10 @@ gnucash_sheet_cursor_move (GnucashSheet *sheet, VirtualLocation virt_loc) gnucash_sheet_make_cell_visible (sheet, virt_loc); changed_cells = !virt_loc_equal (virt_loc, old_virt_loc); + + /* If we've changed cells, redraw the headers */ + if (changed_cells) + gnc_header_request_redraw (GNC_HEADER(sheet->header_item)); /* Now turn on the editing controls. */ gnucash_sheet_activate_cursor_cell (sheet, changed_cells);