GNOME Bugzilla – Bug 684499
Transitioning to backdrop makes the columns resize
Last modified: 2018-02-10 04:39:04 UTC
1. Open /etc
2. Switch to list view
3. Have Name, size, type, modified visible (in that order)
4. Click on the titlebar
The size column jumps around.
It turns out that the bug lies in between GTK+ and the theme.
The problem is that we're using non-standard style properties for focus in the Adwaita engine, and by doing so we hit a slow path in the re-styling code; I now changed the engine to read values from standard CSS style properties, and the bug seems to be gone.
Unfortunately, while this fixes the reported bug, a similar glitch still seems to happen when the window goes to the backdrop state.
It doesn't look like we're doing anything wrong in the theme though, so reopening and reassigning to GTK.
Might be related to bug 662527
Is that an auto-sizing treeview? Because if so, that's a treeview bug. The treeview needs to figure out the sizes to use for the columns. And for that, it decides to measure all the rows.
As it turns out, measuring the (on my computer) 271 rows takes longer than 10ms, so it gets delayed and done in 10ms chunks.
And of course, whenever the code figures out that a row has longer text, it resizes the columns. So if you're lucky you get repaints every frame.
How often do we need to do this recalculation? Well, whenever styles change. And when do styles change? Well, whenever the CSS possibly changed anything. Like when we go to backdrop, focus, etc. Or when a sibling or parent widget does.
We're moving to gitlab! As part of this move, we are closing bugs that haven't seen activity in more than 5 years. If this issue is still imporant to you and
still relevant with GTK+ 3.22 or master, please consider creating a gitlab issue