]> git.0d.be Git - empathy.git/commitdiff
remember the chat window's paned width (#586290)
authorranjiao <ranjiao@gmail.com>
Tue, 8 Dec 2009 01:29:25 +0000 (09:29 +0800)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Tue, 8 Dec 2009 10:09:53 +0000 (10:09 +0000)
libempathy-gtk/empathy-chat.c
libempathy-gtk/empathy-conf.h

index e942f215132a98ac003b659089369a3ed14c9d4a..e627a5ef8f1caaa22f89f22091c794ee10292caf 100644 (file)
@@ -1994,6 +1994,18 @@ chat_destroy_cb (EmpathyTpChat *tp_chat,
        chat_update_contacts_visibility (chat, FALSE);
 }
 
+static gboolean
+chat_hpaned_pos_changed_cb (GtkWidget* hpaned, gpointer user_data)
+{
+       gint hpaned_pos;
+       hpaned_pos = gtk_paned_get_position (GTK_PANED(hpaned));
+       empathy_conf_set_int (empathy_conf_get (),
+                             EMPATHY_PREFS_UI_CHAT_WINDOW_PANED_POS,
+                             hpaned_pos);
+       return TRUE;
+}
+
+
 static void
 show_pending_messages (EmpathyChat *chat) {
        EmpathyChatPriv *priv = GET_PRIV (chat);
@@ -2019,6 +2031,7 @@ chat_create_ui (EmpathyChat *chat)
        GList           *list = NULL;
        gchar           *filename;
        GtkTextBuffer   *buffer;
+       gint              paned_pos;
 
        filename = empathy_file_lookup ("empathy-chat.ui",
                                        "libempathy-gtk");
@@ -2085,6 +2098,17 @@ chat_create_ui (EmpathyChat *chat)
        /* Initialy hide the topic, will be shown if not empty */
        gtk_widget_hide (priv->hbox_topic);
 
+       g_signal_connect (priv->hpaned, "notify::position",
+                         G_CALLBACK (chat_hpaned_pos_changed_cb),
+                         NULL);
+
+        /* Load the paned position */
+       if (empathy_conf_get_int (empathy_conf_get (),
+                                EMPATHY_PREFS_UI_CHAT_WINDOW_PANED_POS,
+                                &paned_pos)
+               && paned_pos)
+               gtk_paned_set_position (GTK_PANED(priv->hpaned), paned_pos);
+
        /* Set widget focus order */
        list = g_list_append (NULL, priv->scrolled_window_input);
        gtk_container_set_focus_chain (GTK_CONTAINER (priv->vbox_left), list);
index d8e34f6b980d62d050d1b746b133720c27166f51..8d0066d900d54c794cff2d884f2020987e7f0805 100644 (file)
@@ -74,6 +74,7 @@ struct _EmpathyConfClass {
 #define EMPATHY_PREFS_UI_AVATAR_DIRECTORY          EMPATHY_PREFS_PATH "/ui/avatar_directory"
 #define EMPATHY_PREFS_UI_SHOW_AVATARS              EMPATHY_PREFS_PATH "/ui/show_avatars"
 #define EMPATHY_PREFS_UI_COMPACT_CONTACT_LIST      EMPATHY_PREFS_PATH "/ui/compact_contact_list"
+#define EMPATHY_PREFS_UI_CHAT_WINDOW_PANED_POS     EMPATHY_PREFS_PATH "/ui/chat_window_paned_pos"
 #define EMPATHY_PREFS_CONTACTS_SHOW_OFFLINE        EMPATHY_PREFS_PATH "/contacts/show_offline"
 #define EMPATHY_PREFS_CONTACTS_SORT_CRITERIUM      EMPATHY_PREFS_PATH "/contacts/sort_criterium"
 #define EMPATHY_PREFS_HINTS_CLOSE_MAIN_WINDOW      EMPATHY_PREFS_PATH "/hints/close_main_window"