diff options
author | Patrick Griffis <tingping@tingping.se> | 2016-11-11 01:25:12 -0500 |
---|---|---|
committer | Patrick Griffis <tingping@tingping.se> | 2016-11-11 01:25:12 -0500 |
commit | 539949973c484f14d40f1886d67ec09df057315c (patch) | |
tree | 823b900e1cb28b61a567a63a8f7a507767bcaebd /src/fe-gtk | |
parent | e7c88e0f83f40f9d020aa7d2783e95dff55f323f (diff) |
More fixes for tab color handling with plugins
Part 2 of 03767ee0f9826222 So how the colors work should be pretty straight forward: - A message comes in and is handled, this sets the state flags: nick_said, msg_said, new_data. These map to tab colors. - This state is reset under one of these conditions: - It is commited to the UI when actually printed on unfocused tab - Event is interupted by a plugin hook - The tab focus is changed
Diffstat (limited to 'src/fe-gtk')
-rw-r--r-- | src/fe-gtk/fe-gtk.c | 16 | ||||
-rw-r--r-- | src/fe-gtk/maingui.c | 15 |
2 files changed, 12 insertions, 19 deletions
diff --git a/src/fe-gtk/fe-gtk.c b/src/fe-gtk/fe-gtk.c index 6fed4fe8..ef9f3ab3 100644 --- a/src/fe-gtk/fe-gtk.c +++ b/src/fe-gtk/fe-gtk.c @@ -660,21 +660,21 @@ fe_print_text (struct session *sess, char *text, time_t stamp, { PrintTextRaw (sess->res->buffer, (unsigned char *)text, prefs.hex_text_indent, stamp); - if (no_activity || sess == current_tab || !sess->gui->is_tab) + if (no_activity || !sess->gui->is_tab) return; - if (sess->nick_said) + if (sess == current_tab) + { + sess->nick_said = FALSE; + sess->msg_said = FALSE; + sess->new_data = FALSE; + } + else if (sess->nick_said) fe_set_tab_color (sess, 3); else if (sess->msg_said) fe_set_tab_color (sess, 2); else fe_set_tab_color (sess, 1); - - if (!sess->new_data && !sess->nick_said) - { - sess->new_data = TRUE; - lastact_update (sess); - } } void diff --git a/src/fe-gtk/maingui.c b/src/fe-gtk/maingui.c index ab4a8156..572f30e4 100644 --- a/src/fe-gtk/maingui.c +++ b/src/fe-gtk/maingui.c @@ -540,17 +540,10 @@ mg_focus (session *sess) sess->server->server_session = sess; } - if (sess->new_data || sess->nick_said || sess->msg_said) - { - sess->nick_said = FALSE; - sess->msg_said = FALSE; - sess->new_data = FALSE; - lastact_update (sess); - /* when called via mg_changui_new, is_tab might be true, but - sess->res->tab is still NULL. */ - if (sess->res->tab) - fe_set_tab_color (sess, 0); - } + /* when called via mg_changui_new, is_tab might be true, but + sess->res->tab is still NULL. */ + if (sess->res->tab) + fe_set_tab_color (sess, 0); } static int |