gtk+ r20286 - in branches/gtk-2-12: . gtk
- From: matthiasc svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r20286 - in branches/gtk-2-12: . gtk
- Date: Mon, 2 Jun 2008 22:14:42 +0000 (UTC)
Author: matthiasc
Date: Mon Jun 2 22:14:41 2008
New Revision: 20286
URL: http://svn.gnome.org/viewvc/gtk+?rev=20286&view=rev
Log:
Bug 56355 â GtkLabel - Not all changes propagate correctly
* gtk/gtklabel.c: (gtk_label_recalculate), (gtk_label_set_label),
(gtk_label_set_markup_with_mnemonic), (gtk_label_parse_uline),
(gtk_label_set_text_with_mnemonic), (gtk_label_set_use_underline):
Call gtk_label_setup_mnemonic from gtk_label_recalculate. Add
notifications of mnemonic-keyval changes.
Modified:
branches/gtk-2-12/ChangeLog
branches/gtk-2-12/gtk/gtklabel.c
Modified: branches/gtk-2-12/gtk/gtklabel.c
==============================================================================
--- branches/gtk-2-12/gtk/gtklabel.c (original)
+++ branches/gtk-2-12/gtk/gtklabel.c Mon Jun 2 22:14:41 2008
@@ -1213,6 +1213,8 @@
static void
gtk_label_recalculate (GtkLabel *label)
{
+ guint keyval = label->mnemonic_keyval;
+
if (label->use_markup)
set_markup (label, label->label, label->use_underline);
else
@@ -1231,11 +1233,12 @@
}
if (!label->use_underline)
- {
- guint keyval = label->mnemonic_keyval;
+ label->mnemonic_keyval = GDK_VoidSymbol;
- label->mnemonic_keyval = GDK_VoidSymbol;
+ if (keyval != label->mnemonic_keyval)
+ {
gtk_label_setup_mnemonic (label, keyval);
+ g_object_notify (G_OBJECT (label), "mnemonic-keyval");
}
gtk_label_clear_layout (label);
@@ -1326,19 +1329,13 @@
gtk_label_set_label (GtkLabel *label,
const gchar *str)
{
- guint last_keyval;
-
g_return_if_fail (GTK_IS_LABEL (label));
g_return_if_fail (str != NULL);
g_object_freeze_notify (G_OBJECT (label));
- last_keyval = label->mnemonic_keyval;
-
gtk_label_set_label_internal (label, g_strdup (str));
gtk_label_recalculate (label);
- if (last_keyval != label->mnemonic_keyval)
- gtk_label_setup_mnemonic (label, last_keyval);
g_object_thaw_notify (G_OBJECT (label));
}
@@ -1454,18 +1451,15 @@
gtk_label_set_markup_with_mnemonic (GtkLabel *label,
const gchar *str)
{
- guint last_keyval;
g_return_if_fail (GTK_IS_LABEL (label));
g_object_freeze_notify (G_OBJECT (label));
- last_keyval = label->mnemonic_keyval;
gtk_label_set_label_internal (label, g_strdup (str ? str : ""));
gtk_label_set_use_markup_internal (label, TRUE);
gtk_label_set_use_underline_internal (label, TRUE);
gtk_label_recalculate (label);
- gtk_label_setup_mnemonic (label, last_keyval);
g_object_thaw_notify (G_OBJECT (label));
}
@@ -2672,13 +2666,10 @@
const gchar *str)
{
guint keyval;
- guint orig_keyval;
g_return_val_if_fail (GTK_IS_LABEL (label), GDK_VoidSymbol);
g_return_val_if_fail (str != NULL, GDK_VoidSymbol);
- orig_keyval = label->mnemonic_keyval;
-
g_object_freeze_notify (G_OBJECT (label));
gtk_label_set_label_internal (label, g_strdup (str ? str : ""));
@@ -2688,9 +2679,12 @@
gtk_label_recalculate (label);
keyval = label->mnemonic_keyval;
- label->mnemonic_keyval = GDK_VoidSymbol;
-
- gtk_label_setup_mnemonic (label, orig_keyval);
+ if (keyval != GDK_VoidSymbol)
+ {
+ label->mnemonic_keyval = GDK_VoidSymbol;
+ gtk_label_setup_mnemonic (label, keyval);
+ g_object_notify (G_OBJECT (label), "mnemonic-keyval");
+ }
g_object_thaw_notify (G_OBJECT (label));
@@ -2717,8 +2711,6 @@
g_return_if_fail (GTK_IS_LABEL (label));
g_return_if_fail (str != NULL);
- last_keyval = label->mnemonic_keyval;
-
g_object_freeze_notify (G_OBJECT (label));
gtk_label_set_label_internal (label, g_strdup (str ? str : ""));
@@ -2727,8 +2719,6 @@
gtk_label_recalculate (label);
- gtk_label_setup_mnemonic (label, last_keyval);
-
g_object_thaw_notify (G_OBJECT (label));
}
@@ -3672,8 +3662,6 @@
gtk_label_set_use_underline_internal (label, setting);
gtk_label_recalculate (label);
- if (label->use_underline)
- gtk_label_setup_mnemonic (label, label->mnemonic_keyval);
}
/**
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]