From 6c59bb26da67f2d48e0203e8df328205313d6c57 Mon Sep 17 00:00:00 2001 From: James Booth Date: Thu, 16 Jan 2014 20:37:25 +0000 Subject: Set boolean when typing in titlebar --- src/ui/titlebar.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/ui/titlebar.c b/src/ui/titlebar.c index f22eb43f..89d195b3 100644 --- a/src/ui/titlebar.c +++ b/src/ui/titlebar.c @@ -34,6 +34,7 @@ static char *current_title = NULL; static char *current_recipient = NULL; static contact_presence_t current_presence; +static gboolean typing; static GTimer *typing_elapsed; static void _title_bar_draw(void); @@ -56,6 +57,7 @@ _title_bar_console(void) { werase(win); current_recipient = NULL; + typing = FALSE; typing_elapsed = NULL; free(current_title); @@ -84,9 +86,7 @@ _title_bar_refresh(void) gdouble seconds = g_timer_elapsed(typing_elapsed, NULL); if (seconds >= 10) { - - free(current_title); - current_title = strdup(current_recipient); + typing = FALSE; g_timer_destroy(typing_elapsed); typing_elapsed = NULL; @@ -110,6 +110,7 @@ _title_bar_set_recipient(const char * const recipient) if (typing_elapsed != NULL) { g_timer_destroy(typing_elapsed); typing_elapsed = NULL; + typing = FALSE; } free(current_recipient); @@ -132,13 +133,8 @@ _title_bar_set_typing(gboolean is_typing) } } - free(current_title); - GString *new_title = g_string_new(current_recipient); - if (is_typing) { - g_string_append(new_title, " (typing...)"); - } - current_title = strdup(new_title->str); - g_string_free(new_title, TRUE); + typing = is_typing; + _title_bar_draw(); } @@ -154,6 +150,9 @@ _title_bar_draw(void) for (i = 0; i < 45; i++) waddch(win, ' '); mvwprintw(win, 0, 0, " %s", current_title); + if (typing) { + wprintw(win, " (typing...)"); + } // show presence int cols = getmaxx(stdscr); -- cgit 1.4.1-2-gfad0