Mercurial > hg
changeset 514:979eb0fe2969
Show status changes in buddy window, if it is open
author | Mikael Berthe <mikael@lilotux.net> |
---|---|
date | Sun, 13 Nov 2005 22:46:46 +0100 |
parents | d40c434fff46 |
children | 180f0a6e4ac9 |
files | mcabber/src/hooks.c mcabber/src/screen.c mcabber/src/screen.h |
diffstat | 3 files changed, 17 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/mcabber/src/hooks.c Sun Nov 13 22:15:19 2005 +0100 +++ b/mcabber/src/hooks.c Sun Nov 13 22:46:46 2005 +0100 @@ -171,6 +171,17 @@ imstatus2char[status], bn, ((status_msg) ? status_msg : "")); g_free(bn); + + // Write the status change in the buddy's buffer, only if it already exists + if (scr_BuddyBufferExists(jid)) { + bn = g_strdup_printf("Buddy status has changed: [%c>%c] %s", + imstatus2char[roster_getstatus(jid, resname)], + imstatus2char[status], + ((status_msg) ? status_msg : "")); + scr_WriteIncomingMessage(jid, bn, 0, HBB_PREFIX_INFO|HBB_PREFIX_NOFLAG); + g_free(bn); + } + roster_setstatus(jid, rn, prio, status, status_msg, role_none, NULL); buddylist_build(); scr_DrawRoster();
--- a/mcabber/src/screen.c Sun Nov 13 22:15:19 2005 +0100 +++ b/mcabber/src/screen.c Sun Nov 13 22:46:46 2005 +0100 @@ -345,6 +345,11 @@ return NULL; } +bool scr_BuddyBufferExists(const char *jid) +{ + return (scr_SearchWindow(jid) != NULL); +} + // scr_UpdateWindow() // (Re-)Display the given chat window. static void scr_UpdateWindow(window_entry_t *win_entry)
--- a/mcabber/src/screen.h Sun Nov 13 22:15:19 2005 +0100 +++ b/mcabber/src/screen.h Sun Nov 13 22:46:46 2005 +0100 @@ -33,6 +33,7 @@ time_t timestamp, guint prefix); void scr_WriteOutgoingMessage(const char *jidto, const char *text); void scr_ShowBuddyWindow(void); +bool scr_BuddyBufferExists(const char *jid); inline void scr_set_chatmode(int enable); inline void scr_set_multimode(int enable); inline int scr_get_multimode();