X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-main.c;h=c94308800d9df2b8efeb70f7337df5581ccc3610;hb=9cc6e11cf037b2b5861db991e0b339cf96d80a76;hp=edf74b381fb154a5ada1ca5cced654ccc1c9a2f3;hpb=bbfbdaf78143ca606557422769d723d1f373109b;p=modest diff --git a/src/modest-main.c b/src/modest-main.c index edf74b3..c943088 100644 --- a/src/modest-main.c +++ b/src/modest-main.c @@ -34,10 +34,22 @@ #include #include #include +#include int main (int argc, char *argv[]) { + /* Usually we don't show the application at first, + * because we wait for the top_application D-Bus method to + * be called. But that's annoying when starting from the + * command line.: */ + gboolean show_ui_without_top_application_method = FALSE; + if (argc >= 2) { + printf ("DEBUG: %s: argv[1]=%s\n", __FUNCTION__, argv[1]); + if (strcmp (argv[1], "showui") == 0) + show_ui_without_top_application_method = TRUE; + } + ModestWindow *win; int retval = 0; @@ -45,7 +57,7 @@ main (int argc, char *argv[]) g_thread_init (NULL); gdk_threads_init (); - gdk_threads_enter (); + gdk_threads_enter (); /* CHECKED */ if (!gtk_init_check(&argc, &argv)) { g_printerr ("modest: failed to initialize gtk\n"); @@ -60,14 +72,22 @@ main (int argc, char *argv[]) } win = modest_main_window_new (); - gtk_widget_show_all (GTK_WIDGET(win)); - + if (!win) { g_printerr ("modest: failed to create main window\n"); retval = 1; goto cleanup; } + /* Usually, we only show the UI when we get the "top_application" D-Bus method. + * This allows modest to start via D-Bus activation to provide a service, + * without showing the UI. + * The UI will be shown later (or just after starting if no otehr D-Bus method was used), + * when we receive the "top_application" D-Bus method. + */ + if (show_ui_without_top_application_method) + gtk_widget_show_all (GTK_WIDGET(win)); + modest_window_mgr_register_window (modest_runtime_get_window_mgr(), win); g_object_unref (win); @@ -76,7 +96,7 @@ main (int argc, char *argv[]) retval = 0; cleanup: - gdk_threads_leave (); + gdk_threads_leave (); /* CHECKED */ if (!modest_init_uninit ()) { g_printerr ("modest: modest_init_uninit failed\n");