After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 698571 - [3.8.1 regression] GTK "reconfigures" frequently causing flickering
[3.8.1 regression] GTK "reconfigures" frequently causing flickering
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Widget: Other
3.8.x
Other Linux
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2013-04-22 13:55 UTC by Ross Lagerwall
Modified: 2013-05-13 04:44 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Ross Lagerwall 2013-04-22 13:55:00 UTC
After upgrading to GTK 3.8.1 today (Arch Linux), I noticed that GTK3 apps
kept on trying to resize themselves to their (default/desired) size but
were, of course, being overridden by the window manager since it is a
tiling wm (awesome). This results in a lot of flickering.

This can be reproduced by running gtk3-demo and clicking on the menu on the
left. Each click results in a flicker.
Running with GDK_DEBUG=events shows (presumably the desired size is 600x400 but
the wm is resizing it to 958x1059):
Gdk-Message: property notify:	window: 33554435, atom(359): "_NET_WM_USER_TIME"
Gdk-Message: property notify:	window: 33554435, atom(40): "WM_NORMAL_HINTS"
Gdk-Message: configure notify:	window: 33554435  x,y: 0 0	w,h: 600 400  b-w: 0  above: 0	 ovr: 0
Gdk-Message: configure notify:	window: 33554435  x,y: 0 0	w,h: 958 1059  b-w: 0  above: 0	 ovr: 0
Gdk-Message: expose:		window: 33554435  1	x,y: 600 0  w,h: 358 400
Gdk-Message: expose:		window: 33554435  0	x,y: 0 400  w,h: 958 659

Before the bug, running with GDK_DEBUG=events showed:
Gdk-Message: property notify:	window: 33554435, atom(359): "_NET_WM_USER_TIME"
Gdk-Message: property notify:	window: 33554435, atom(40): "WM_NORMAL_HINTS"

Bisection showed that the following commit is the problem, introduced between 3.8.0 and 3.8.1:

38b62e4660a470cdda94480d3ab6da467125998e is the first bad commit
commit 38b62e4660a470cdda94480d3ab6da467125998e
Author: Benjamin Otte <otte@redhat.com>
Date:   Mon Apr 8 16:25:29 2013 +0200

    window: restore size after hide/show properly
    
    Old code assumed the size was stored in widget.allocation. This is no
    longer true as the allocation is cleared upon hide. However, we store
    the last configure request, and that one tracks the last size, so we can
    just use that number.
    
    Sometimes things are so easy - once you figure them out...
    
    https://bugzilla.gnome.org/show_bug.cgi?id=696882

:040000 040000 87c7e99cc41f6a0bf31010192b125d115032df68 6ebeb00cb85cc4d8ef6aa89df21cc08b28e956ab M	gtk
Comment 1 Ross Lagerwall 2013-04-22 19:56:49 UTC
An example of using evince in floating mode and pressing the search button:
http://rossl.org/ross/evince.ogv

Note that this bug is not exclusive to awesome, it also occurs in i3 window
manager.

Thanks
Comment 2 Ross Lagerwall 2013-04-23 06:33:45 UTC
I see now that the same behavior as shown in the video happens in an up-to-date Fedora 19 running gnome-shell.
Comment 3 Mike Auty 2013-04-25 20:43:44 UTC
I've also experienced totem repeatedly resizing back to the smallest possible size, both with and without "resize video on new video playback", when being told to be 1x, 2x, or even 0.5x size (which is still larger than the smallest possible video window).  Fullscreen is not affected, and manually dragging the corner of the screen will cause the video to stay at that size, until a request for 1x, 2x or 0.5x zoom, at which point it will again resize to the smallest possible size video window.  Reverting to gtk+-3.8.0 resolves the problem, so it seems highly likely that this is related.
Comment 4 aatdark 2013-04-28 12:23:13 UTC
i can not confirm the evince - search button bug. 
Search works for me, but if i press F9 (toggle sidebar) i'm getting this issue. (resize to 600x600)

evince 3.8.0
Comment 5 Matthias Clasen 2013-05-13 04:44:35 UTC
I believe this has been fixed in gtk master and gtk-3-8