about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorMichael Vetter <jubalh@iodoru.org>2020-06-02 14:24:37 +0200
committerMichael Vetter <jubalh@iodoru.org>2020-06-02 14:24:37 +0200
commit3d7a3134afc36f8494fca1b3d77a1bc7e6789f63 (patch)
tree83b2700f4579f4d30c83eac922b36df1c4ab00d7
parent7ca03562b5acf544de231f2d4e24fcc2d047e77f (diff)
downloadprofani-tty-3d7a3134afc36f8494fca1b3d77a1bc7e6789f63.tar.gz
Fix offline roster contacts
Fix https://github.com/profanity-im/profanity/issues/1280
p_contact_set_presence() is triggered in
(roster_process_pending_presence) to set the presence to online
after the roster is displayed.

This happened to me _every time_ with one certain account on my server.
But not even once with other accounts on my server.

I don't understand why that is the case, but AFAIK the code should be
like it is in this PR anyways.

roster_process_pending_presence() was added there in
973a05d15a9843f2e8f6dff598f2161367885994 to fix
https://github.com/profanity-im/profanity/issues/1050
-rw-r--r--src/event/server_events.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/event/server_events.c b/src/event/server_events.c
index 7494dfd0..44fef42c 100644
--- a/src/event/server_events.c
+++ b/src/event/server_events.c
@@ -133,11 +133,12 @@ sv_ev_login_account_success(char *account_name, gboolean secured)
 void
 sv_ev_roster_received(void)
 {
+    roster_process_pending_presence();
+
     if (prefs_get_boolean(PREF_ROSTER)) {
         ui_show_roster();
     }
 
-    roster_process_pending_presence();
     char *account_name = session_get_account_name();
 
 #ifdef HAVE_LIBGPGME