GNOME Bugzilla – Bug 577353
use libunique for palimpsest
Last modified: 2009-03-31 21:58:40 UTC
This becomes more important when we allow to launch palimpsest from the smart warning icon.
Created attachment 131746 [details] [review] initial unique application support
Small wart: currently, palimpsest seems to use gtk_dialog_run for some of its dialogs (e.g. the "sure you want to delete this partition" dialog). Thus, while the dialog is up, running a second instance of palimpsest will hang waiting for a response from the unique app (which wll come once the dialog is dismissed.
(In reply to comment #1) > Created an attachment (id=131746) [edit] > initial unique application support > Committed. Thanks.
(In reply to comment #2) > Small wart: currently, palimpsest seems to use gtk_dialog_run for some of its > dialogs (e.g. the "sure you want to delete this partition" dialog). Thus, while > the dialog is up, running a second instance of palimpsest will hang waiting for > a response from the unique app (which wll come once the dialog is dismissed. Mmm.. yeah. I don't really have any good ideas here. First of all we can't get rid of modal dialogs; we are messing with data on the hard disks so occasionally we really need to ask confirmation. Btw, isn't it a libunique bug that it doesn't respond if gtk_dialog_run() is used? I mean, gtk_dialog_run() will still run the main loop and service the D-Bus connection... Anyway, I think we should just dismiss dialogs (with GTK_RESPONSE_CANCEL) when getting a message from a 2nd palimpsest instance launched with --show-volume or --show-drive. This should also be documented in --help. Thoughts?
We tentatively tracked this down to libdbus holding some lock while calling the pending-call-complete callback, preventing further dbus messages to be processed while we do the gtk_dialog_run. So, this is a dbus bug, and probably not worth working around here.