"on_preference_window_destroy":self.on_quit,
Esta linha é o seu problema. Quando a janela é destruída, você está chamando um método de quit. Quando você fecha a janela, ela é destruída, resultando no seu método quit sendo chamado.
Além disso, você não deseja chamar sys.exit(0)
para sair de um aplicativo GTK +. Você deseja usar Gtk.main_quit()
. Também seria uma boa idéia converter seu aplicativo para usar as associações gobject-introspection
para GTK + e bibliotecas relacionadas, em vez de usar as ligações pygtk
antigas e preteridas.