GnuCash
Contact   Instructions
Bug 797236 - Regression: Reconcile window transaction list resets to top when new transaction created in account
Summary: Regression: Reconcile window transaction list resets to top when new transact...
Status: RESOLVED FIXED
Alias: None
Product: GnuCash
Classification: Unclassified
Component: User Interface General (show other bugs)
Version: 3.5
Hardware: PC Linux
: Normal normal
Target Milestone: 4.0
Assignee: Chris Good
QA Contact: ui
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-05-13 09:14 EDT by Derek Atkins
Modified: 2020-05-03 20:37 EDT (History)
6 users (show)

See Also:


Attachments

Description Derek Atkins 2019-05-13 09:14:19 EDT
When reconciling an account with a lot of transactions, when you scroll down in the reconcile window and then add a new transaction into the account, the reconcile window will reset to the top instead of staying on the currently (or last) selected transaction.  This is a regression; this used to happen a long time ago and was fixed, but this bug was re-introduced in the 3.x code base.

Steps to reproduce:
1) Start with an account with a lot of unreconciled transactions.
2) Start the reconcile process for that account
3) Scroll down in the reconcile window and select a transaction (or not, it shouldn't matter)
4) Go back to the account register and add a new transaction
5) Notice how the reconcile window scrolled to the top

This happens 100% of the time with 3.4 and 3.5 on my FC29 system.
Comment 1 Chris Good 2020-03-23 03:18:18 EDT
Hi Derek,
I'm having a look at this, testing in a current maint built from source on Linux.

What I'm seeing is that if you select a split in say the 2nd page of the Funds In panel of the Reconcile window, then use the Open button to go to the register, then add a transaction, when you commit the transaction, the Funds In panel redraws showing nearly the top of the splits (mine shows from the very bottom of the top split). If you scroll down, the correct split is still selected though.

Similar happens if you delete a transaction from the register.

Is this the problem?
Comment 2 Derek Atkins 2020-03-23 10:09:30 EDT
(In reply to Chris Good from comment #1)
> Hi Derek,
> I'm having a look at this, testing in a current maint built from source on
> Linux.
> 
> What I'm seeing is that if you select a split in say the 2nd page of the
> Funds In panel of the Reconcile window, then use the Open button to go to
> the register, then add a transaction, when you commit the transaction, the
> Funds In panel redraws showing nearly the top of the splits (mine shows from
> the very bottom of the top split). If you scroll down, the correct split is
> still selected though.
> 
> Similar happens if you delete a transaction from the register.
> 
> Is this the problem?

Yes, this is the problem (and the regression).

In 2.6.x when the pane redrew, the highlighted split would still be in the window.  In fact it would not re-scroll the window of splits after the "redraw" at all.  IIRC it would anchor the top of the (visible) list.
Comment 3 Chris Good 2020-03-26 02:31:44 EDT
I haven't been able to trackdown when this regression occurred. It may have been before GnuCash started using Github, in which case I don't know how to track that.
I think I'm getting close to knowing enough to attempt a fix, something involving using gtk_tree_view_scroll_to_cell().

In the meantime, a workaround that may help: After adding a transaction, back in the Reconciliation window, Use Down Arrow and it will take you to the next split after the split it was on before the Open button was used.
Comment 4 John Ralls 2020-03-26 11:17:50 EDT
If you need older Windows packages, they're at https://sourceforge.net/projects/gnucash/files/gnucash%20%28stable%29/ back to 2.2.0.
Comment 5 Derek Atkins 2020-03-26 11:22:18 EDT
(In reply to Chris Good from comment #3)
> I haven't been able to trackdown when this regression occurred. It may have
> been before GnuCash started using Github, in which case I don't know how to
> track that.
> I think I'm getting close to knowing enough to attempt a fix, something
> involving using gtk_tree_view_scroll_to_cell().
> 
> In the meantime, a workaround that may help: After adding a transaction,
> back in the Reconciliation window, Use Down Arrow and it will take you to
> the next split after the split it was on before the Open button was used.

It happened somewhere between 2.6.x and 3.x.  I know that when I was still using 2.6.{latest} that this did not occur, and as soon as I upgraded my desktop and it pulled in 3.x, boom, hit this issue.  I believe this coincided with a change of the underlying widget used for the reconcile window lists.

I will try the Down-Arrow workaround next time, thanks.  I'm surprised I didn't think of that myself!

John, I'm not sure whether windows packages will help here?
Comment 6 John Ralls 2020-03-26 11:57:36 EDT
Derek, I figured that Chris was trying to bisect with the windows setup.exe packages. Why else would he depend on when we started to use Github?

It's quite possible that the difference is down to differences between the Gtk2 and Gtk3 implementations of GtkListView. The whole GtkTreeFoo system was thoroughly rewritten for Gtk3. In that case it won't help to find the release with the difference, what's needed is to figure out how to make it do what we want in Gtk3.
Comment 7 Chris Good 2020-03-27 00:37:23 EDT
Hi John,
I was just going thru the commit history for window-reconcile.c, reconcile-view.c and gnc-query-view.c, but I think you're right, we just need to make it work in Gtk3.
Comment 8 Geert Janssens 2020-03-27 08:01:22 EDT
Chris,

*All* commit history is in git. The old svn revisions have been converted to git commits. So there's no "history from before the move to git". Just a FYI.
Comment 9 Chris Good 2020-03-27 18:03:16 EDT
I must have forgotten that. :-( thanks Geert.
Comment 10 Chris Good 2020-04-18 00:41:48 EDT
Created PR# 698 https://github.com/Gnucash/gnucash/pull/698 for maint.
I hope everyone in our community is staying safe. :-)
Comment 11 Chris Good 2020-04-18 00:44:24 EDT
Thanks for help with this John + Geert.
Comment 12 Chris Good 2020-05-01 22:18:06 EDT
Created new PR# 707 https://github.com/Gnucash/gnucash/pull/707 for master to replace PR 698 (maint).
Comment 13 Chris Good 2020-05-03 20:37:35 EDT
PR# 707 merged into master 3/5/2020. Fix will be in GC 4.0.

Note You need to log in before you can comment on or make changes to this bug.