aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy
diff options
context:
space:
mode:
authorChandni Verma <chandniverma2112@gmail.com>2011-05-08 03:14:43 +0800
committerChandni Verma <chandniverma2112@gmail.com>2011-05-09 20:52:55 +0800
commit72785d7ab576618ccc2847b8d51d1f4c9ff19241 (patch)
tree59f9c30f35779a74c8540ae4529c802976ab9d28 /libempathy
parent5ead12fb5b53cea0c8a97e8f101e2d729ca47282 (diff)
downloadgsoc2013-empathy-72785d7ab576618ccc2847b8d51d1f4c9ff19241.tar
gsoc2013-empathy-72785d7ab576618ccc2847b8d51d1f4c9ff19241.tar.gz
gsoc2013-empathy-72785d7ab576618ccc2847b8d51d1f4c9ff19241.tar.bz2
gsoc2013-empathy-72785d7ab576618ccc2847b8d51d1f4c9ff19241.tar.lz
gsoc2013-empathy-72785d7ab576618ccc2847b8d51d1f4c9ff19241.tar.xz
gsoc2013-empathy-72785d7ab576618ccc2847b8d51d1f4c9ff19241.tar.zst
gsoc2013-empathy-72785d7ab576618ccc2847b8d51d1f4c9ff19241.zip
Save changes to chatrooms.xml configuration file only when needed.
Changes will be written to the file only when changes are made to a chatroom property that is listed in the file. Fixes room-list flicker: https://bugzilla.gnome.org/show_bug.cgi?id=642087
Diffstat (limited to 'libempathy')
-rw-r--r--libempathy/empathy-chatroom-manager.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/libempathy/empathy-chatroom-manager.c b/libempathy/empathy-chatroom-manager.c
index 9ad75ee03..7872bbb19 100644
--- a/libempathy/empathy-chatroom-manager.c
+++ b/libempathy/empathy-chatroom-manager.c
@@ -192,7 +192,16 @@ add_chatroom (EmpathyChatroomManager *self,
priv->chatrooms = g_list_prepend (priv->chatrooms, g_object_ref (chatroom));
- g_signal_connect (chatroom, "notify",
+ /* Watch only those properties which are exported in the save file */
+ g_signal_connect (chatroom, "notify::name",
+ G_CALLBACK (chatroom_changed_cb), self);
+ g_signal_connect (chatroom, "notify::room",
+ G_CALLBACK (chatroom_changed_cb), self);
+ g_signal_connect (chatroom, "notify::account",
+ G_CALLBACK (chatroom_changed_cb), self);
+ g_signal_connect (chatroom, "notify::auto-connect",
+ G_CALLBACK (chatroom_changed_cb), self);
+ g_signal_connect (chatroom, "notify::always_urgent",
G_CALLBACK (chatroom_changed_cb), self);
}