GNOME Bugzilla – Bug 766643
Frozen windows when unmapped with pending configure event
Last modified: 2016-05-25 00:51:26 UTC
When GtkWindows are resized, gtk_window_move_resize() will call gdk_window_freeze_toplevel_updates() [1]. The intention is that gdk_window_thaw_toplevel_updates() will be called when the associated (or another) configure event is received [2]. However, when gtk_window_unmap() is called before the configure event is received, it resets configure_request_count to zero [3], and so gtk_window_configure_event() will not call gdk_window_thaw_toplevel_updates(). Remapping the window just provides a frozen window. Discovered by Andrew Comminos [4]. Looks like this goes back to [5]. [1] https://git.gnome.org/browse/gtk+/tree/gtk/gtkwindow.c?h=3.18.9#n9484 [2] https://git.gnome.org/browse/gtk+/tree/gtk/gtkwindow.c?h=3.18.9#n7544 [3] https://git.gnome.org/browse/gtk+/tree/gtk/gtkwindow.c?h=3.18.9#n6198 [4] https://bugzilla.mozilla.org/show_bug.cgi?id=1225044#c16 [5] https://git.gnome.org/browse/gtk+/commit/?id=eab3ef31455b8ce2c410d2c45240a77bdd9f5bd2
Pushed this fix in the hope that it solves things. Please test and reopen if not. commit b9f55dfd634808ddec5b1a82769890e217b8eb46 Author: Benjamin Otte <otte@redhat.com> Date: Wed May 25 01:16:52 2016 +0200 window: Unfreeze window on unmap Make sure to keep parity with the number of times we froze the window when we unmap it. Otherwise it will permanently stay frozen after being remapped.
Works perfectly, thanks Benjamin!