mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-12 16:50:19 +00:00
Add -NOOVERRIDE flag to GUI COLOR. (#2644)
This commit is contained in:
@@ -664,13 +664,13 @@ fe_print_text (struct session *sess, char *text, time_t stamp,
|
||||
return;
|
||||
|
||||
if (sess == current_tab)
|
||||
fe_set_tab_color (sess, 0);
|
||||
fe_set_tab_color (sess, FE_COLOR_NONE);
|
||||
else if (sess->tab_state & TAB_STATE_NEW_HILIGHT)
|
||||
fe_set_tab_color (sess, 3);
|
||||
fe_set_tab_color (sess, FE_COLOR_NEW_HILIGHT);
|
||||
else if (sess->tab_state & TAB_STATE_NEW_MSG)
|
||||
fe_set_tab_color (sess, 2);
|
||||
fe_set_tab_color (sess, FE_COLOR_NEW_MSG);
|
||||
else
|
||||
fe_set_tab_color (sess, 1);
|
||||
fe_set_tab_color (sess, FE_COLOR_NEW_DATA);
|
||||
}
|
||||
|
||||
void
|
||||
|
||||
@@ -175,20 +175,26 @@ fe_flash_window (session *sess)
|
||||
/* set a tab plain, red, light-red, or blue */
|
||||
|
||||
void
|
||||
fe_set_tab_color (struct session *sess, int col)
|
||||
fe_set_tab_color (struct session *sess, tabcolor col)
|
||||
{
|
||||
struct session *server_sess = sess->server->server_session;
|
||||
int col_noflags = (col & ~FE_COLOR_ALLFLAGS);
|
||||
int col_shouldoverride = !(col & FE_COLOR_FLAG_NOOVERRIDE);
|
||||
|
||||
if (sess->res->tab && sess->gui->is_tab && (col == 0 || sess != current_tab))
|
||||
{
|
||||
switch (col)
|
||||
switch (col_noflags)
|
||||
{
|
||||
case 0: /* no particular color (theme default) */
|
||||
sess->tab_state = TAB_STATE_NONE;
|
||||
chan_set_color (sess->res->tab, plain_list);
|
||||
break;
|
||||
case 1: /* new data has been displayed (dark red) */
|
||||
sess->tab_state = TAB_STATE_NEW_DATA;
|
||||
chan_set_color (sess->res->tab, newdata_list);
|
||||
if (col_shouldoverride || !((sess->tab_state & TAB_STATE_NEW_MSG)
|
||||
|| (sess->tab_state & TAB_STATE_NEW_HILIGHT))) {
|
||||
sess->tab_state = TAB_STATE_NEW_DATA;
|
||||
chan_set_color (sess->res->tab, newdata_list);
|
||||
}
|
||||
|
||||
if (chan_is_collapsed (sess->res->tab)
|
||||
&& !((server_sess->tab_state & TAB_STATE_NEW_MSG)
|
||||
@@ -201,8 +207,10 @@ fe_set_tab_color (struct session *sess, int col)
|
||||
|
||||
break;
|
||||
case 2: /* new message arrived in channel (light red) */
|
||||
sess->tab_state = TAB_STATE_NEW_MSG;
|
||||
chan_set_color (sess->res->tab, newmsg_list);
|
||||
if (col_shouldoverride || !(sess->tab_state & TAB_STATE_NEW_HILIGHT)) {
|
||||
sess->tab_state = TAB_STATE_NEW_MSG;
|
||||
chan_set_color (sess->res->tab, newmsg_list);
|
||||
}
|
||||
|
||||
if (chan_is_collapsed (sess->res->tab)
|
||||
&& !(server_sess->tab_state & TAB_STATE_NEW_HILIGHT)
|
||||
@@ -540,7 +548,7 @@ mg_focus (session *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);
|
||||
fe_set_tab_color (sess, FE_COLOR_NONE);
|
||||
}
|
||||
|
||||
static int
|
||||
|
||||
Reference in New Issue
Block a user