]> Pileus Git - ~andy/gtk/commitdiff
label: Don't use the selection too easily
authorMatthias Clasen <mclasen@redhat.com>
Tue, 20 Mar 2012 05:05:05 +0000 (01:05 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Tue, 20 Mar 2012 05:05:05 +0000 (01:05 -0400)
When we are re-setting the same text for internal reasons
(e.g. when applying the mnemonics-visible change upon Alt press),
we should not needlessly loos the selection.

https://bugzilla.gnome.org/show_bug.cgi?id=671588

gtk/gtklabel.c

index 050f46e083ba693ae871c5609c9e65580299e1db..14c0f88d8ea19e7b24e56072a2a2f23a36ec7329 100644 (file)
@@ -1979,15 +1979,18 @@ gtk_label_get_mnemonic_keyval (GtkLabel *label)
 
 static void
 gtk_label_set_text_internal (GtkLabel *label,
-                            gchar    *str)
+                             gchar    *str)
 {
   GtkLabelPrivate *priv = label->priv;
+  gboolean text_changed;
 
-  g_free (priv->text);
+  text_changed = g_strcmp0 (priv->text, str) != 0;
 
+  g_free (priv->text);
   priv->text = str;
 
-  gtk_label_select_region_index (label, 0, 0);
+  if (text_changed)
+    gtk_label_select_region_index (label, 0, 0);
 }
 
 static void