GNOME Bugzilla – Bug 692035
Since GTK 3.7.2 infinite loop when pressing "add" button in Nautilus searchbar
Last modified: 2013-03-01 21:22:49 UTC
To reproduce: - open Nautilus, press "Search" on the toolbar - press the + icon in the searchbar - 3.7.2 or later hangs, 3.7.0 still used to work fine Trying a bisect now.
Bisect reports this is caused by c98ee1ec396ccd8cb4c87780ee08adad88fdf3e3 is the first bad commit commit c98ee1ec396ccd8cb4c87780ee08adad88fdf3e3 Author: Benjamin Otte <otte@redhat.com> Date: Tue Nov 13 21:51:29 2012 +0100 sizerequestcache: Make clear_cache clear all the cache :040000 040000 3511501d1d9c31f56f452e1bf0bbde96f9a91487 75ffa5c8778c31ce050533366b50e6d4ba5eb03e M gtk
Backtrace: (gdb) bt
+ Trace 231397
The set_label_size_request() function at http://git.gnome.org/browse/nautilus/tree/src/nautilus-pathbar.c?id=id=9a122cb3aa4f85548ff036ea3e6509e0e60387f8#n304 is completely broken. Size requests must not modify widgets. So what happens is that unsetting ellipsisze will of course queue a resize on the label which in turn will queue a resize on the pathbar. And when you do that during size computation, size computation will cause a resize which will cause a size computation. I have no idea why it used to work, but I'm convinced that was a lucky accident. Fwiw, what is that function even trying to do?
This seems to have been fixed in GTK in the meantime. That code has quite a long history in the pathbar; it's trying to make the label request size as if it was bold, so that the button doesn't change size when you click it... Anyway, not a problem anymore. I hope this won't be back at some point :)