GNOME Bugzilla – Bug 746773
GtkScrolledWindow animation breaks application using vadjustment value
Last modified: 2018-04-15 00:29:42 UTC
I have been debugging a regression in the Mageia installer caused by switching to the latest version of gtk+. During installation, a GtkScrolledWindow is used to display the packages being installed. By default the window should automatically scroll down as each new line is written to buffer, but if the user drags the vertical scrollbar up to review what's already been installed, automatic scrolling should stop. This is achieved by getting the vadjustment value, page_size, and upper values, and only scrolling if value+page_size == upper. With the new animation feature, the vadjustment value now reflects the position the animation has reached. This can lag a fair way behind the target position, particularly when text is being output rapidly, which then causes the automatic scrolling to stop. Whilst I can to some extent work round this by changing the test to value+page_size+small_margin >= upper, this isn't guaranteed to be safe when text is being output rapidly. The ideal fix for this bug (in my opinion) would be to make the vadjustment value reflect the target position, rather than the current position. This should make it more compatible with the behaviour of older versions of gtk. If this is not possible, a property that allows animation to be disabled would be an acceptable alternative. Alternatively, I'm open to suggestions on better ways to achieve the desired functionality!
We're moving to gitlab! As part of this move, we are moving bugs to NEEDINFO if they haven't seen activity in more than a year. If this issue is still important to you and still relevant with GTK+ 3.22 or master, please reopen it and we will migrate it to gitlab.
As announced a while ago, we are migrating to gitlab, and bugs that haven't seen activity in the last year or so will be not be migrated, but closed out in bugzilla. If this bug is still relevant to you, you can open a new issue describing the symptoms and how to reproduce it with gtk 3.22.x or master in gitlab: https://gitlab.gnome.org/GNOME/gtk/issues/new