GNOME Bugzilla – Bug 761939
Blank/empty universal access settings panel
Last modified: 2016-03-01 15:22:20 UTC
Testing 3.19.x with an up to date GNOME Continous image: The universal access panel is blank when it is opened from the control center icon grid or from search. All you see is an empty grey box. If you launch the panel directly with "gnome-control-center universal-access", it works as expected with all the content visible.
Given that switching away from the app shows things, and that even switching to the inspector makes things appear, I'd think that the problem might be a GTK+ one. Reassigning.
That may well be. I would appreciate some help with tracking this down if you can; GTK+ has a lot of bugs that need attention...
We had this bug on openSUSE too, but it seems to have been fixed by a recent update (probably the gtk+ bump). Only tested on real hardware, so unknown if it still exists when running virtualized.
gnome-control-center with GTK+ master still has the issue, so I'm afraid it is still around.
Running with GTK_DEBUG=geometry yields the following warnings when this happens (gnome-control-center:11396): Gtk-WARNING **: GtkSearchEntry 0x55b253698570 or a child called gtk_widget_queue_resize() during size_allocte(). gtk_widget_set_clip: GtkBox 0 0 531 40 gtk_widget_set_clip: GtkBox 0 0 531 40 (gnome-control-center:11396): Gtk-WARNING **: GtkBox 0x55b2536c8120 or a child called gtk_widget_queue_resize() during size_allocte(). gtk_widget_size_allocate: GtkBox 537 6 261 34 gtk_widget_set_clip: GtkBox 797 6 3 34 gtk_widget_set_clip: GtkBox 0 0 800 40 gtk_widget_set_clip: GtkBox 0 0 800 40 (gnome-control-center:11396): Gtk-WARNING **: GtkBox 0x55b25316de40 or a child called gtk_widget_queue_resize() during size_allocte(). (gnome-control-center:11396): Gtk-WARNING **: GtkRevealer 0x55b2536a9ae0 or a child called gtk_widget_queue_resize() during size_allocte(). (gnome-control-center:11396): Gtk-WARNING **: GtkSearchBar 0x55b25311c870 or a child called gtk_widget_queue_resize() during size_allocte().
I've just found that I can reproduce it actually, but only on a x11 session, works as expected when on wayland.
What does https://git.gnome.org/browse/gnome-control-center/tree/panels/universal-access/cc-ua-panel.c#n856 do? Why is it there? That causes the resizes in size-allocate, but I don't think that's what's causing the scrolledwindow to be allocated to 1px height. As for why it gets a 1px height allocated, GtkScrolledWindow has a 0 px min-height and 0 px natural height because natural_req.height never gets set here: https://git.gnome.org/browse/gtk+/tree/gtk/gtkscrolledwindow.c#n1762 . This seems correct, or at least 3.18 did the same thing though. I'm wondering why that size-allocate handler is there and why the scrolledwindow doesn't vexpand. But then again, it does have valign=FILL so that should already do it..,? Anyway, you can "fix" it by setting vexpand on the scrolledwindow and removing that size-allocate handler, and I'm off to bed. (The window doesn't resize to a slightly-bigger size though...).
Hacked around in master, thanks for the help Timm