mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
statusbar: check if roster exists
We destory the roster in ev_disconnect_cleanup(). Adding a function to test if the roster has been destroyed and testing for it in the statusbar. So now when the connection is lost 'Lost connection' is printed in all open windows. We can then reconnect with `/connect accountname`. Should fix https://github.com/profanity-im/profanity/issues/1083
This commit is contained in:
parent
2d00444702
commit
b210fb3603
@ -187,7 +187,10 @@ _create_tab(const int win, win_type_t wintype, char *identifier, gboolean highli
|
||||
tab->display_name = NULL;
|
||||
|
||||
if (tab->window_type == WIN_CHAT) {
|
||||
PContact contact = roster_get_contact(tab->identifier);
|
||||
PContact contact = NULL;
|
||||
if (roster_exists()) {
|
||||
contact = roster_get_contact(tab->identifier);
|
||||
}
|
||||
if (contact && p_contact_name(contact)) {
|
||||
tab->display_name = strdup(p_contact_name(contact));
|
||||
} else {
|
||||
@ -601,5 +604,4 @@ _display_name(StatusBarTab *tab)
|
||||
g_free(trimmed);
|
||||
|
||||
return trimmedname;
|
||||
|
||||
}
|
||||
|
@ -707,3 +707,11 @@ roster_process_pending_presence(void)
|
||||
g_slist_free(roster_pending_presence);
|
||||
roster_pending_presence = NULL;
|
||||
}
|
||||
|
||||
gboolean
|
||||
roster_exists(void) {
|
||||
if (roster != NULL) {
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
@ -73,5 +73,6 @@ char* roster_get_msg_display_name(const char *const barejid, const char *const r
|
||||
gint roster_compare_name(PContact a, PContact b);
|
||||
gint roster_compare_presence(PContact a, PContact b);
|
||||
void roster_process_pending_presence(void);
|
||||
gboolean roster_exists(void);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user