diff options
Diffstat (limited to 'src/fe-gtk/userlistgui.c')
-rw-r--r-- | src/fe-gtk/userlistgui.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/fe-gtk/userlistgui.c b/src/fe-gtk/userlistgui.c index 8405695b..a2a7e9ae 100644 --- a/src/fe-gtk/userlistgui.c +++ b/src/fe-gtk/userlistgui.c @@ -38,6 +38,7 @@ #include "../common/util.h" #include "../common/userlist.h" #include "../common/modes.h" +#include "../common/text.h" #include "../common/notify.h" #include "../common/hexchatc.h" #include "../common/fe.h" @@ -327,21 +328,21 @@ fe_userlist_rehash (session *sess, struct User *user) { GtkTreeIter *iter; int sel; - int do_away = TRUE; + int nick_color = NULL; iter = find_row (GTK_TREE_VIEW (sess->gui->user_tree), sess->res->user_model, user, &sel); if (!iter) return; - if (prefs.hex_away_size_max < 1 || !prefs.hex_away_track) - do_away = FALSE; + if (prefs.hex_away_track && prefs.hex_away_size_max && user->away) + nick_color = COL_AWAY; + else if (prefs.hex_gui_ulist_color) + nick_color = text_color_of(user->nick); gtk_list_store_set (GTK_LIST_STORE (sess->res->user_model), iter, COL_HOST, user->hostname, - COL_GDKCOLOR, (do_away) - ? (user->away ? &colors[COL_AWAY] : NULL) - : (NULL), + COL_GDKCOLOR, nick_color ? &colors[nick_color] : NULL, -1); } @@ -351,11 +352,13 @@ fe_userlist_insert (session *sess, struct User *newuser, int row, int sel) GtkTreeModel *model = sess->res->user_model; GdkPixbuf *pix = get_user_icon (sess->server, newuser); GtkTreeIter iter; - int do_away = TRUE; char *nick; + int nick_color = NULL; - if (prefs.hex_away_size_max < 1 || !prefs.hex_away_track) - do_away = FALSE; + if (prefs.hex_away_track && prefs.hex_away_size_max && newuser->away) + nick_color = COL_AWAY; + else if (prefs.hex_gui_ulist_color) + nick_color = text_color_of(newuser->nick); nick = newuser->nick; if (!prefs.hex_gui_ulist_icons) @@ -374,9 +377,7 @@ fe_userlist_insert (session *sess, struct User *newuser, int row, int sel) COL_NICK, nick, COL_HOST, newuser->hostname, COL_USER, newuser, - COL_GDKCOLOR, (do_away) - ? (newuser->away ? &colors[COL_AWAY] : NULL) - : (NULL), + COL_GDKCOLOR, nick_color ? &colors[nick_color] : NULL, -1); if (!prefs.hex_gui_ulist_icons) |