* small updates (send button in edit window)
[modest] / src / gtk2 / modest-ui.c
index 9c221dc..834b0dc 100644 (file)
@@ -56,6 +56,8 @@ struct _ModestUIPrivate {
         ModestAccountMgr      *account_mgr;
        ModestWidgetFactory   *widget_factory;  
         ModestTnyAccountStore *account_store;
+
+       GtkWidget              *main_window;
 };
 
 #define MODEST_UI_GET_PRIVATE(o)      (G_TYPE_INSTANCE_GET_PRIVATE((o), \
@@ -124,6 +126,8 @@ modest_ui_init (ModestUI *obj)
        priv->account_mgr    = NULL;
        priv->conf           = NULL;
        priv->widget_factory = NULL;
+
+       priv->main_window    = NULL;
 }
 
 
@@ -192,22 +196,33 @@ modest_ui_new (ModestConf *modest_conf)
        return MODEST_UI(obj);
 }
 
+static gboolean
+on_main_window_delete_event (GtkWidget *widget, GdkEvent *event, ModestUI *self)
+{
+       g_warning (__FUNCTION__);
+       gtk_main_quit ();
+       return FALSE;
+}
+
 
 GtkWidget*
 modest_ui_main_window (ModestUI *modest_ui)
 {
-       GtkWidget* win;
        ModestUIPrivate *priv;
 
        g_return_val_if_fail (modest_ui, NULL);
        priv = MODEST_UI_GET_PRIVATE(modest_ui);
 
-       win = modest_main_window_new (priv->conf, priv->account_mgr,
-                                     priv->widget_factory);
-       if (!win)
+       if (!priv->main_window) {
+               priv->main_window =
+                       modest_main_window_new (priv->conf, priv->account_mgr,
+                                               priv->widget_factory);
+               g_signal_connect (G_OBJECT(priv->main_window), "delete-event",
+                                 G_CALLBACK(on_main_window_delete_event), modest_ui);
+       }
+               
+       if (!priv->main_window)
                g_printerr ("modest: could not create main window\n");
-
-       return win;
+       
+       return priv->main_window;
 }
-
-