]> Pileus Git - ~andy/gtk/blobdiff - gtk/gtklabel.c
label: Don't use the selection too easily
[~andy/gtk] / 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