diff --git a/src/notebook.c b/src/notebook.c index 02216fa827..0473a3842b 100644 --- a/src/notebook.c +++ b/src/notebook.c @@ -218,9 +218,9 @@ static GtkWidget *create_switch_dialog(void) static void update_filename_label(void) { guint i; - gchar *msg = NULL; guint queue_length; GeanyDocument *doc; + GString *markup = g_string_new(NULL); if (!switch_dialog) { @@ -234,8 +234,10 @@ static void update_filename_label(void) gchar *basename; basename = g_path_get_basename(DOC_FILENAME(doc)); + SETPTR(basename, g_markup_escape_text(basename, -1)); + if (i == mru_pos) - msg = g_markup_printf_escaped ("%s", basename); + g_string_printf(markup, "%s", basename); else if (i % queue_length == mru_pos) /* && i != mru_pos */ { /* We have wrapped around and got to the starting document again */ @@ -244,13 +246,15 @@ static void update_filename_label(void) } else { - SETPTR(basename, g_markup_printf_escaped ("\n%s", basename)); - SETPTR(msg, g_strconcat(msg, basename, NULL)); + g_string_append(markup, "\n"); + if (doc->changed) + SETPTR(basename, g_strconcat("", basename, "", NULL)); + g_string_append(markup, basename); } g_free(basename); } - gtk_label_set_markup(GTK_LABEL(switch_dialog_label), msg); - g_free(msg); + gtk_label_set_markup(GTK_LABEL(switch_dialog_label), markup->str); + g_string_free(markup, TRUE); }