[empathy] remember the chat window's paned width (#586290)



commit 9a2a6a34682af3eb6ff1741e45a0c1b5cd4d386f
Author: ranjiao <ranjiao gmail com>
Date:   Tue Dec 8 09:29:25 2009 +0800

    remember the chat window's paned width (#586290)

 libempathy-gtk/empathy-chat.c |   24 ++++++++++++++++++++++++
 libempathy-gtk/empathy-conf.h |    1 +
 2 files changed, 25 insertions(+), 0 deletions(-)
---
diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c
index e942f21..e627a5e 100644
--- a/libempathy-gtk/empathy-chat.c
+++ b/libempathy-gtk/empathy-chat.c
@@ -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);
diff --git a/libempathy-gtk/empathy-conf.h b/libempathy-gtk/empathy-conf.h
index d8e34f6..8d0066d 100644
--- a/libempathy-gtk/empathy-conf.h
+++ b/libempathy-gtk/empathy-conf.h
@@ -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"



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]