]> git.0d.be Git - empathy.git/blobdiff - libempathy-gtk/empathy-main-window.c
[darcs-to-svn @ Fixing presence and preference dialog]
[empathy.git] / libempathy-gtk / empathy-main-window.c
index 257ade9bd9380e1ba042407e172bd5021d31cab4..ca4577f2806ef05d69bb97b195ea3652802b6b5c 100644 (file)
@@ -39,6 +39,7 @@
 #include "gossip-status-presets.h"
 #include "gossip-geometry.h"
 #include "gossip-preferences.h"
+#include "gossip-accounts-dialog.h"
 
 #define DEBUG_DOMAIN "EmpathyMainWindow"
 
@@ -155,20 +156,25 @@ static void     main_window_notify_compact_contact_list_cb (GossipConf
                                                            EmpathyMainWindow   *window);
 
 GtkWidget *
-empathy_main_window_new (void)
-{
-       EmpathyMainWindow *window;
-       GladeXML          *glade;
-       GossipConf        *conf;
-       GtkWidget         *sw;
-       GtkWidget         *show_offline_widget;
-       GtkWidget         *ebox;
-       GtkToolItem       *item;
-       gchar             *str;
-       gboolean           show_offline;
-       gboolean           show_avatars;
-       gboolean           compact_contact_list;
-       gint               x, y, w, h;
+empathy_main_window_show (void)
+{
+       static EmpathyMainWindow *window = NULL;
+       GladeXML                 *glade;
+       GossipConf               *conf;
+       GtkWidget                *sw;
+       GtkWidget                *show_offline_widget;
+       GtkWidget                *ebox;
+       GtkToolItem              *item;
+       gchar                    *str;
+       gboolean                  show_offline;
+       gboolean                  show_avatars;
+       gboolean                  compact_contact_list;
+       gint                      x, y, w, h;
+
+       if (window) {
+               gtk_window_present (GTK_WINDOW (window->window));
+               return window->window;
+       }
 
        window = g_new0 (EmpathyMainWindow, 1);
 
@@ -332,6 +338,8 @@ empathy_main_window_new (void)
                      "is-compact", compact_contact_list,
                      NULL);
 
+       gtk_widget_show (window->window);
+
        return window->window;
 }
 
@@ -509,7 +517,7 @@ static void
 main_window_edit_accounts_cb (GtkWidget         *widget,
                              EmpathyMainWindow *window)
 {
-       //gossip_accounts_dialog_show (NULL);
+       gossip_accounts_dialog_show ();
 }
 
 static void
@@ -523,7 +531,7 @@ static void
 main_window_edit_preferences_cb (GtkWidget         *widget,
                                 EmpathyMainWindow *window)
 {
-       //gossip_preferences_show ();
+       gossip_preferences_show ();
 }
 
 static void
@@ -550,7 +558,7 @@ main_window_throbber_button_press_event_cb (GtkWidget      *throbber_ebox,
                return FALSE;
        }
 
-       //gossip_accounts_dialog_show (NULL);
+       gossip_accounts_dialog_show ();
 
        return FALSE;
 }