Bug#842070: libgtk-3-0: Upgrade breaks gvim: Gtk-CRITICAL **: gtk_widget_set_size_request: assertion 'width >= -1' failed

Andreas Henriksson andreas at fatal.se
Wed Oct 26 13:09:28 UTC 2016


Hello Ben Armstrong.

On Tue, Oct 25, 2016 at 02:20:27PM -0300, Ben Armstrong wrote:
> Package: libgtk-3-0
> Version: 3.22.2-1
> Severity: normal
> 
> Dear Maintainer,
> 
>    * What led up to the situation?
> 
> I upgraded from libgtk-3-0 3.22.1-1 to 3.22.2-1.
> 
>    * What exactly did you do (or not do) that was effective (or
>      ineffective)?
> 
> I attempted to open gvim (vim.gtk3 -g), with or without a filename as parameter.
> 
>    * What was the outcome of this action?
> 
> Whenever I opened gvim, I saw these messages:
> 
> (gvim:1904): Gtk-CRITICAL **: gtk_widget_set_size_request: assertion 'width >= -1' failed
> *** BUG ***
> In pixman_region32_init_rect: Invalid rectangle passed
> Set a breakpoint on '_pixman_log_error' to debug
> 
> Then a window was opened, but no buffer contents were shown, and
> nothing could be typed in the buffer area, making it impossible to use
> the editor. The buttons and menus at the top were still functional,
> however.
> 
> I downgraded back to libgtk-3-0 3.22.1-1, and that was effective to
> resolve the issue.  The above error messages went away, the buffer was
> shown, and the editor functioned properly.
> 
>    * What outcome did you expect instead?
> 
> I expected no error messages, and I expected the buffer contents to
> be empty and ready to accept input (no filename specified) or else
> contain the contents of the specified file.
> 
> I supposed that since there was only a minor revision bump for this
> release, it was more likely libgtk-3-0 broke than gvim itself.
> Re-assign as needed if I guessed incorrectly.

I bisected this issue which pointed at it being introduced in:

commit 12579fe71b3b8f79eb9c1b80e429443bcc437dd0
Author: Olivier Fourdan <ofourdan at redhat.com>
Date:   Thu Oct 6 16:49:39 2016 +0200

    gdkwindow: configure native windows in move_native_children()
    
    ClutterEmbed on Wayland uses a subsurface and relocates it on configure
    events, but when placed within a scrolled window, no configure event is
    emitted and the ClutterEmbed subsurface remains static.
    
    Emit a configure event for native windows in GdkWindow's internal
    move_native_children() so that custom widgets relying on configure
    events such as ClutterEmbed can relocate their stuff.
    
    Similarly, when switching to/from normal/maximized/fullscreen states
    which change the shadows' size and possibly shows/hides a header bar,
    we need to emit a configure event even if the abs_x/abs_y haven't
    changed to make sure the subsurface is size appropriately.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=771320
    https://bugzilla.gnome.org/show_bug.cgi?id=767713

Oliver do you have any ideas or hints on how we should proceed to identify
the proper fix?

Regards,
Andreas Henriksson



More information about the pkg-gnome-maintainers mailing list