r17984 - gnucash/trunk/src/register/register-gnome - Bug #523982: Fix the Enter key in double-line mode. The register had wrongly assumed one physical row per virtual row.
Charles Day
cedayiv at cvs.gnucash.org
Mon Mar 9 14:23:25 EDT 2009
Author: cedayiv
Date: 2009-03-09 14:23:25 -0400 (Mon, 09 Mar 2009)
New Revision: 17984
Trac: http://svn.gnucash.org/trac/changeset/17984
Modified:
gnucash/trunk/src/register/register-gnome/gnucash-sheet.c
Log:
Bug #523982: Fix the Enter key in double-line mode. The register had wrongly assumed one physical row per virtual row.
Modified: gnucash/trunk/src/register/register-gnome/gnucash-sheet.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-sheet.c 2009-03-09 17:17:57 UTC (rev 17983)
+++ gnucash/trunk/src/register/register-gnome/gnucash-sheet.c 2009-03-09 18:23:25 UTC (rev 17984)
@@ -1819,6 +1819,7 @@
{
GnucashSheet *sheet;
VirtualLocation virt_loc;
+ int start_virt_row;
g_return_if_fail (reg != NULL);
g_return_if_fail (GNUCASH_IS_REGISTER(reg));
@@ -1827,8 +1828,14 @@
gnucash_cursor_get_virt (GNUCASH_CURSOR(sheet->cursor), &virt_loc);
- if (!gnc_table_move_vertical_position (sheet->table, &virt_loc, 1))
- return;
+ /* Move down one physical row at a time until we
+ * reach the next visible virtual cell. */
+ start_virt_row = virt_loc.vcell_loc.virt_row;
+ do
+ {
+ if (!gnc_table_move_vertical_position (sheet->table, &virt_loc, 1))
+ return;
+ } while (start_virt_row == virt_loc.vcell_loc.virt_row);
if (virt_loc.vcell_loc.virt_row >= sheet->num_virt_rows)
return;
More information about the gnucash-changes
mailing list