[empathy: 1/3] Escape markup in notifications and icon tooltip



commit 485ccb5ac65dc8beccd511c9575c3f58ae52d047
Author: Will Thompson <will thompson collabora co uk>
Date:   Tue Aug 4 22:15:38 2009 +0100

    Escape markup in notifications and icon tooltip
    
    7730ffd fixed this for the notifications that are produced by the chat
    window, but not for the ones produced by the status icon. Why these are
    separate code paths eludes me.

 src/empathy-status-icon.c |   19 ++++++++++++-------
 1 files changed, 12 insertions(+), 7 deletions(-)
---
diff --git a/src/empathy-status-icon.c b/src/empathy-status-icon.c
index f6c63c5..1f6a32c 100644
--- a/src/empathy-status-icon.c
+++ b/src/empathy-status-icon.c
@@ -23,6 +23,8 @@
 
 #include <string.h>
 
+#include <glib.h>
+
 #include <gtk/gtk.h>
 #include <gdk/gdkkeysyms.h>
 
@@ -136,16 +138,18 @@ status_icon_update_notification (EmpathyStatusIcon *icon)
 	}
 
 	if (priv->event) {
+		gchar *message_esc = g_markup_escape_text (priv->event->message, -1);
+
 		pixbuf = empathy_misc_get_pixbuf_for_notification (priv->event->contact,
 								   priv->event->icon_name);
 
 		if (priv->notification) {
 			notify_notification_update (priv->notification,
-						    priv->event->header, priv->event->message,
+						    priv->event->header, message_esc,
 						    NULL);
 		} else {
 			priv->notification = notify_notification_new_with_status_icon
-				(priv->event->header, priv->event->message, NULL, priv->icon);
+				(priv->event->header, message_esc, NULL, priv->icon);
 			notify_notification_set_timeout (priv->notification,
 							 NOTIFY_EXPIRES_DEFAULT);
 
@@ -160,6 +164,7 @@ status_icon_update_notification (EmpathyStatusIcon *icon)
 		notify_notification_show (priv->notification, NULL);
 
 		g_object_unref (pixbuf);
+		g_free (message_esc);
 	} else {
 		notification_close_helper (priv);
 	}
@@ -173,12 +178,12 @@ status_icon_update_tooltip (EmpathyStatusIcon *icon)
 
 	if (priv->event) {
 		if (priv->event->message != NULL)
-				tooltip = g_strdup_printf ("<i>%s</i>\n%s",
-							   priv->event->header,
-							   priv->event->message);
+				tooltip = g_markup_printf_escaped ("<i>%s</i>\n%s",
+								   priv->event->header,
+								   priv->event->message);
 		else
-				tooltip = g_strdup_printf ("<i>%s</i>",
-							   priv->event->header);
+				tooltip = g_markup_printf_escaped ("<i>%s</i>",
+								   priv->event->header);
 		gtk_status_icon_set_tooltip_markup (priv->icon, tooltip);
 	} else {
 		tooltip = g_strdup (empathy_idle_get_status (priv->idle));



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]