1e781ec78f
The code here is a bit messy, as the signal disconnection is handled in two different places. Share code in a better, different way. https://bugzilla.gnome.org/show_bug.cgi?id=702539