* sort the folder names in the way the spec wants; this work is not complete:
[modest] / src / modest-main.c
index 4adca14..52ad08b 100644 (file)
 #include <modest-init.h>
 #include <gdk/gdk.h>
 #include <widgets/modest-main-window.h>
+#include <string.h>
 
 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");
@@ -59,32 +71,29 @@ main (int argc, char *argv[])
                goto cleanup;
        }
 
-       win = modest_main_window_new ();
-
-       /* TODO: Do not show this now. 
-        * Only show it when we get the "top_application" D-Bus method.
+       /* this will create & register the window */
+       win = modest_window_mgr_get_main_window (modest_runtime_get_window_mgr());
+       if (!win) {
+               g_printerr ("modest: failed to get main window instance\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.
         */
-       gtk_widget_show_all (GTK_WIDGET(win));
-               
-       if (!win) {
-               g_printerr ("modest: failed to create main window\n");
-               retval = 1;
-               goto cleanup;
-       }
+       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);
        
        gtk_main ();    
        retval = 0;
 
 cleanup:
-       gdk_threads_leave ();
+       gdk_threads_leave (); /* CHECKED */
 
        if (!modest_init_uninit ()) {
                g_printerr ("modest: modest_init_uninit failed\n");