From cdbd0d2f0a2b945a8bf0b6ab17dafaf0d0cf90bf Mon Sep 17 00:00:00 2001 From: James Booth Date: Sun, 12 Feb 2012 21:36:01 +0000 Subject: [PATCH] Only switch to active chats --- profanity.c | 30 ++++++++++++++++++++---------- title_bar.c | 2 +- windows.c | 12 +++++++++++- windows.h | 1 + 4 files changed, 33 insertions(+), 12 deletions(-) diff --git a/profanity.c b/profanity.c index e06ac12d..e34b6106 100644 --- a/profanity.c +++ b/profanity.c @@ -58,25 +58,35 @@ static void profanity_event_loop(int *ch, char *cmd, int *size) // determine if they changed windows if (*ch == KEY_F(1)) { - switch_to(0); + if (is_active(0)) + switch_to(0); } else if (*ch == KEY_F(2)) { - switch_to(1); + if (is_active(1)) + switch_to(1); } else if (*ch == KEY_F(3)) { - switch_to(2); + if (is_active(2)) + switch_to(2); } else if (*ch == KEY_F(4)) { - switch_to(3); + if (is_active(3)) + switch_to(3); } else if (*ch == KEY_F(5)) { - switch_to(4); + if (is_active(4)) + switch_to(4); } else if (*ch == KEY_F(6)) { - switch_to(5); + if (is_active(5)) + switch_to(5); } else if (*ch == KEY_F(7)) { - switch_to(6); + if (is_active(6)) + switch_to(6); } else if (*ch == KEY_F(8)) { - switch_to(7); + if (is_active(7)) + switch_to(7); } else if (*ch == KEY_F(9)) { - switch_to(8); + if (is_active(8)) + switch_to(8); } else if (*ch == KEY_F(10)) { - switch_to(9); + if (is_active(9)) + switch_to(9); } // get another character from the command box diff --git a/title_bar.c b/title_bar.c index 130afa74..27b2855e 100644 --- a/title_bar.c +++ b/title_bar.c @@ -5,7 +5,7 @@ static WINDOW *title_bar; void create_title_bar(void) { - char *title = "Profanity"; + char *title = "Profanity. Type /help for help information."; int rows, cols; getmaxyx(stdscr, rows, cols); diff --git a/windows.c b/windows.c index 60c4201a..8725a7d7 100644 --- a/windows.c +++ b/windows.c @@ -39,8 +39,16 @@ void gui_close(void) endwin(); } -void switch_to(int i) +int is_active(int i) { + if (strcmp(wins[i].from, "") == 0) + return FALSE; + else + return TRUE; +} + +void switch_to(int i) +{ touchwin(wins[i].win); wrefresh(wins[i].win); curr_win = i; @@ -64,6 +72,8 @@ void close_win(void) // go back to console window touchwin(wins[0].win); wrefresh(wins[0].win); + + title_bar_show("Console, type /help for help information"); } int in_chat(void) diff --git a/windows.h b/windows.h index 0614bbdc..37d5f1c9 100644 --- a/windows.h +++ b/windows.h @@ -32,6 +32,7 @@ void inp_get_password(char *passwd); void gui_init(void); void gui_close(void); void title_bar_show(char *title); +int is_active(int i); void switch_to(int i); void close_win(void); int in_chat(void);