GNOME Bugzilla – Bug 165034
Scrolling when fixed_height_mode is enabled is weird
Last modified: 2011-02-04 16:18:46 UTC
Scrolling down a fixed_height_mode treeview with the keyboard does odd things: instead of scrolling so that the next row is fully visible, it does not scroll unless the row is not visible at all. But then when it scrolls, it scrolls so that the newly visible row is at the top of the view, which is very strange behaviour.
Created attachment 36534 [details] Testcase Testcase. Select the treeview and scroll down using the 'down arrow' key. When you get to the bottom, you will meet the problem.
Created attachment 37666 [details] [review] Patch The problem seems to be that using fixed height mode not all nodes are marked as valid, and therefore the scroll algorithm in validate_visible_area gets used, instead of the one in _scroll_to_cell. These scroll algorithms differ. Attached patch makes the behaviour consistent.
Setting target milestone to 2.6.5 since this report has a patch that should at least be looked at.
Moving to 2.8, as Kris thinks his patch is risky
The patch doesn't look right. The current code also deals with rows at the first and last page of the treeview (those need special treatment wrt adjustments). Also, simply scrolling through the treeview should not go via the validate_visible_area() path. So, I think the best thing to do is to just mark all rows valid in fixed height. I've nearly finished a patch to do this, only thing left is handling rows which have been invalidated along the way and need to be validated again.
Fixed on CVS HEAD.