GNOME Bugzilla – Bug 772345
placesviewrow: busy_spinner when visible offsets the rest of the widgets on the row
Last modified: 2016-10-10 19:14:09 UTC
Created attachment 336768 [details] screenshot of busy_spinner causing rest of row to get offset from other rows The eject_button is hidden using its child-visible property of the containing GtkBox. However, the busy_spinner is hidden just using gtk_widget_set_visible. The upshot of this is that, while the busy_spinner is visible, it requests size that wasn't previously allocated in the box. This causes the rest of the placesviewrow, to the left, to be offset. So, the path and capacity labels get shifted noticeably compared to other rows above/below which are not marked busy. See the attached screenshot for a demo of this. This is noted in the source for the eject_button: >294 /* >295 * When we hide the eject button, no size is allocated for it. Since >296 * we want to have alignment between rows, it needs an empty space >297 * when the eject button is not available. So, call then >298 * gtk_widget_set_child_visible(), which makes the button allocate the >299 * size but it stays hidden when needed. >300 */ ...so the simplest solution is to do the same thing for the busy_spinner.. Alternatively, we could put the eject_button and busy_spinner in a stack, since - AFAICT - they are mutually exclusive anyway, right? Doing this will ensure that there is always the same amount of space reserved in the row, while not taking up space for a spinner that is only there a fraction of the time. I'll try to implement and submit patches for both options, unless someone on the team really wants to beat me to it. :)
*** This bug has been marked as a duplicate of bug 771161 ***
Oops, my bad. Those two are separate (albeit related) issues.
*facepalm* Sorry again… My reading apprehension has reached unprecedented lows. *** This bug has been marked as a duplicate of bug 771161 ***
I know the feeling. I've submitted my patch there!