# HG changeset patch # User Mikael Berthe # Date 1141510764 -3600 # Node ID ba1137a01078090285a2bc5fd6264f120b36d3bd # Parent be9f6224c3caae8338f325fcc55f805cdac31483 Add a chatmode flag (©) in the chat status line diff -r be9f6224c3ca -r ba1137a01078 mcabber/src/screen.c --- a/mcabber/src/screen.c Sat Mar 04 22:16:39 2006 +0100 +++ b/mcabber/src/screen.c Sat Mar 04 23:19:24 2006 +0100 @@ -716,9 +716,10 @@ scr_ShowBuddyWindow(); } -// update_chat_status_window() +// update_chat_status_window(forceupdate) // Redraw the buddy status bar. -static void update_chat_status_window(void) +// Set forceupdate to TRUE if doupdate() must be called. +static void update_chat_status_window(int forceupdate) { unsigned short btype, isgrp, ismuc; const char *fullname; @@ -735,8 +736,15 @@ // Clear the line werase(chatstatusWnd); + if (chatmode) + wprintw(chatstatusWnd, "©"); + if (isgrp) { mvwprintw(chatstatusWnd, 0, 5, "Group: %s", fullname); + if (forceupdate) { + update_panels(); + doupdate(); + } return; } @@ -767,6 +775,11 @@ replace_nl_with_dots(buf); mvwprintw(chatstatusWnd, 0, 1, "%s", buf); g_free(buf); + + if (forceupdate) { + update_panels(); + doupdate(); + } } // scr_DrawRoster() @@ -804,7 +817,7 @@ if (!buddylist) offset = 0; else - update_chat_status_window(); + update_chat_status_window(FALSE); // Leave now if buddylist is empty or the roster is hidden if (!buddylist || !Roster_Width) { @@ -1366,6 +1379,7 @@ inline void scr_set_chatmode(int enable) { chatmode = enable; + update_chat_status_window(TRUE); } // scr_get_multimode() @@ -1895,6 +1909,7 @@ if (current_buddy) buddy_setflags(BUDDATA(current_buddy), ROSTER_FLAG_LOCK, FALSE); scr_RosterVisibility(1); + update_chat_status_window(FALSE); top_panel(chatPanel); top_panel(inputPanel); update_panels();