user-accounts: Fix bug when name is changed to contain markup

When changing to a "display name" that contains markup, such
as "Foo & Bar", the code to update the user list on the left
wasn't escaping the text correctly.
This commit is contained in:
Bastien Nocera 2011-05-11 17:25:03 +01:00
parent b8c2826e3d
commit f66e7bb4dd

View file

@ -116,6 +116,14 @@ get_selected_user (UmUserPanelPrivate *d)
return NULL; return NULL;
} }
static char *
get_name_col_str (UmUser *user)
{
return g_markup_printf_escaped ("<b>%s</b>\n<i>%s</i>",
um_user_get_display_name (user),
um_account_type_get_name (um_user_get_account_type (user)));
}
static void static void
user_added (UmUserManager *um, UmUser *user, UmUserPanelPrivate *d) user_added (UmUserManager *um, UmUser *user, UmUserPanelPrivate *d)
{ {
@ -128,7 +136,6 @@ user_added (UmUserManager *um, UmUser *user, UmUserPanelPrivate *d)
gchar *text; gchar *text;
GtkTreeSelection *selection; GtkTreeSelection *selection;
gint sort_key; gint sort_key;
gchar *escaped_name;
gboolean is_autologin; gboolean is_autologin;
g_debug ("user added: %d %s\n", um_user_get_uid (user), um_user_get_real_name (user)); g_debug ("user added: %d %s\n", um_user_get_uid (user), um_user_get_real_name (user));
@ -138,11 +145,7 @@ user_added (UmUserManager *um, UmUser *user, UmUserPanelPrivate *d)
selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget)); selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (widget));
pixbuf = um_user_render_icon (user, TRUE, 48); pixbuf = um_user_render_icon (user, TRUE, 48);
escaped_name = g_markup_escape_text (um_user_get_display_name (user), -1); text = get_name_col_str (user);
text = g_strdup_printf ("<b>%s</b>\n<i>%s</i>",
escaped_name,
um_account_type_get_name (um_user_get_account_type (user)));
g_free (escaped_name);
is_autologin = um_user_get_automatic_login (user); is_autologin = um_user_get_automatic_login (user);
@ -269,9 +272,7 @@ user_changed (UmUserManager *um, UmUser *user, UmUserPanelPrivate *d)
gtk_tree_model_get (model, &iter, USER_COL, &current, -1); gtk_tree_model_get (model, &iter, USER_COL, &current, -1);
if (current == user) { if (current == user) {
pixbuf = um_user_render_icon (user, TRUE, 48); pixbuf = um_user_render_icon (user, TRUE, 48);
text = g_strdup_printf ("<b>%s</b>\n<i>%s</i>", text = get_name_col_str (user);
um_user_get_display_name (user),
um_account_type_get_name (um_user_get_account_type (user)));
is_autologin = um_user_get_automatic_login (user); is_autologin = um_user_get_automatic_login (user);
gtk_list_store_set (GTK_LIST_STORE (model), &iter, gtk_list_store_set (GTK_LIST_STORE (model), &iter,