[empathy/gnome-2-28] Make calling empathy without options idempotent
- From: Sjoerd Simons <sjoerds src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [empathy/gnome-2-28] Make calling empathy without options idempotent
- Date: Mon, 19 Oct 2009 10:01:49 +0000 (UTC)
commit c0ea5c2be72209daa5984752de3ca3e8c090de19
Author: Sjoerd Simons <sjoerd simons collabora co uk>
Date: Thu Oct 15 19:19:50 2009 -0400
Make calling empathy without options idempotent
When empathy is started without any accounts the account assistant shows up,
but if empathy is already running and is called again nothing happens. Fixed
by always showing the account assistant if empathy is called and there are
no non-salut accounts
src/empathy.c | 27 +++++++++++++++++++++------
1 files changed, 21 insertions(+), 6 deletions(-)
---
diff --git a/src/empathy.c b/src/empathy.c
index 0c8efdf..82f62dd 100644
--- a/src/empathy.c
+++ b/src/empathy.c
@@ -451,7 +451,8 @@ migrate_config_to_xdg_dir (void)
}
static void
-do_show_accounts_ui (GtkWindow *window, EmpathyAccountManager *manager)
+do_show_accounts_ui (GtkWindow *window,
+ EmpathyAccountManager *manager)
{
GtkWidget *ui;
@@ -478,17 +479,24 @@ account_manager_ready_for_accounts_cb (EmpathyAccountManager *manager,
}
static void
-show_accounts_ui (GtkWindow *window)
+show_accounts_ui (GtkWindow *window,
+ gboolean force)
{
EmpathyAccountManager *manager;
manager = empathy_account_manager_dup_singleton ();
if (empathy_account_manager_is_ready (manager))
{
- do_show_accounts_ui (window, manager);
+ if (force)
+ do_show_accounts_ui (window, manager);
+ else
+ maybe_show_account_assistant ();
}
- else
+ else if (force)
{
+ /* Only if we we're forced to show the widget connect to ready, otherwise
+ * the initial readyness will cause the accounts ui to be shown when
+ * needed */
g_signal_connect (manager, "notify::ready",
G_CALLBACK (account_manager_ready_for_accounts_cb), window);
}
@@ -510,10 +518,17 @@ unique_app_message_cb (UniqueApp *unique_app,
if (command == COMMAND_ACCOUNTS_DIALOG)
{
- show_accounts_ui (window);
+ show_accounts_ui (window, TRUE);
}
else
{
+ /* We're requested to show stuff again, disable the start hidden global
+ * in case the accounts wizard wants to pop up.
+ */
+ start_hidden = FALSE;
+
+ show_accounts_ui (window, FALSE);
+
gtk_window_set_screen (GTK_WINDOW (window),
unique_message_data_get_screen (data));
gtk_window_set_startup_id (GTK_WINDOW (window),
@@ -890,7 +905,7 @@ main (int argc, char *argv[])
if (account_dialog_only)
{
account_manager = empathy_account_manager_dup_singleton ();
- show_accounts_ui (NULL);
+ show_accounts_ui (NULL, TRUE);
gtk_main ();
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]