--- a/pidgin/gtkblist.c Wed Sep 20 01:38:28 2017 +0200 +++ b/pidgin/gtkblist.c Wed Nov 29 20:40:36 2017 +0100 @@ -60,6 +60,7 @@ #include "gtkstatusbox.h" #include "gtkscrollbook.h" #include "gtksmiley.h" +#include "gtkstyle.h" #include "gtkblist-theme.h" #include "gtkblist-theme-loader.h" #include "gtkutils.h" @@ -4178,7 +4179,7 @@ gchar * pidgin_blist_get_name_markup(PurpleBuddy *b, gboolean selected, gboolean aliased) { - const char *name, *name_color, *name_font, *status_color, *status_font; + const char *name, *name_color, *name_font, *status_color, *status_font, *dim_grey; char *text = NULL; PurplePlugin *prpl; PurplePluginProtocolInfo *prpl_info = NULL; @@ -4281,13 +4282,15 @@ theme = pidgin_blist_get_theme(); name_color = NULL; + dim_grey = pidgin_style_is_dark(NULL) ? "light slate grey" : "dim grey"; + if (theme) { if (purple_presence_is_idle(presence)) { namefont = statusfont = pidgin_blist_theme_get_idle_text_info(theme); - name_color = "dim grey"; + name_color = dim_grey; } else if (!purple_presence_is_online(presence)) { namefont = pidgin_blist_theme_get_offline_text_info(theme); - name_color = "dim grey"; + name_color = dim_grey; statusfont = pidgin_blist_theme_get_status_text_info(theme); } else if (purple_presence_is_available(presence)) { namefont = pidgin_blist_theme_get_online_text_info(theme); @@ -4301,14 +4304,14 @@ && (purple_presence_is_idle(presence) || !purple_presence_is_online(presence))) { - name_color = "dim grey"; + name_color = dim_grey; } } name_color = theme_font_get_color_default(namefont, name_color); name_font = theme_font_get_face_default(namefont, ""); - status_color = theme_font_get_color_default(statusfont, "dim grey"); + status_color = theme_font_get_color_default(statusfont, dim_grey); status_font = theme_font_get_face_default(statusfont, ""); if (aliased && selected) { @@ -4726,6 +4729,15 @@ } } break; + default: + break; + } +} + +static void +chat_joined_cb(PurpleConversation *conv, PidginBuddyList *gtkblist) +{ + switch (conv->type) { case PURPLE_CONV_TYPE_CHAT: { PurpleChat *chat = purple_blist_find_chat(conv->account, conv->name); @@ -6092,6 +6104,9 @@ purple_signal_connect(handle, "conversation-created", gtkblist, PURPLE_CALLBACK(conversation_created_cb), gtkblist); + purple_signal_connect(handle, "chat-joined", gtkblist, + PURPLE_CALLBACK(chat_joined_cb), + gtkblist); gtk_widget_hide(gtkblist->headline_hbox); @@ -6535,7 +6550,7 @@ textcolor = pidgin_theme_font_get_color_describe(pair); else /* If no theme them default to making idle buddy names grey */ - textcolor = "dim grey"; + textcolor = pidgin_style_is_dark(NULL) ? "light slate grey" : "dim grey"; if (textcolor) { idle = g_strdup_printf("<span color='%s' font_desc='%s'>%d:%02d</span>",