GNOME Bugzilla – Bug 747553
Popovers inside local plugs don't get size_allocate() called
Last modified: 2015-04-13 10:40:22 UTC
gtk_plug_size_allocate() does minimal handling of size allocation in the local case (when the plug is not a toplevel, but embedded in the widget hierarchy), this path does the bare minimal, but doesn't chain up. This results in popover_size_allocate() being never called for popovers contained inside such plugs. Since windows can be intermediate containers, it looks to me like _gtk_window_set_allocation() will currently do roughly the same for GtkPlugs than that branch in gtk_plug_size_allocate, plus allocating popovers, so it does look to me like we can just stop overriding size_allocate at all. This can be seen on testsocket, choosing either of the local options, the entries inside the plug will be unable to show any of the magnifier/handles/selection popovers.
Created attachment 301202 [details] [review] plug: Remove size_allocate handler Since windows can be intermediate containers this is somewhat redundant, plus gtk_window_size_allocate() will do additional things like allocating the popovers, which was mistakenly skipped by local plugs not chaining up.
I confirm this fixes the problems I was having with popovers in browser plugins with ephy.
needs cherry-picking to 3.16 and 3.14, I assume ?
(In reply to Matthias Clasen from comment #3) > needs cherry-picking to 3.16 and 3.14, I assume ? Please :-)
Attachment 301202 [details] pushed as fe7bc84 - plug: Remove size_allocate handler