pidgin/gtkblist.c

branch
trac-17174
changeset 38822
93c0cd117e1d
parent 38754
ce9ac4939540
child 38913
8ed31ec968af
--- 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>",

mercurial