summaryrefslogtreecommitdiff
path: root/gtk
diff options
context:
space:
mode:
authorOwen Taylor <otaylor@redhat.com>2002-02-26 22:16:06 +0000
committerOwen Taylor <otaylor@src.gnome.org>2002-02-26 22:16:06 +0000
commite7171e19c9c3557ecdfc0614b0c45518566e8278 (patch)
treec55277211a309d0c41bbc82ddde41d7b193be9ad /gtk
parent87ab3ced3a3ff4b8fb92a537b2605399e43c6083 (diff)
downloadgtk+-e7171e19c9c3557ecdfc0614b0c45518566e8278.tar.gz
Emit ::color_changed every time we notify current_color. (Brute force fix
Tue Feb 26 17:04:44 2002 Owen Taylor <otaylor@redhat.com> * gtk/gtkcolorsel.c (update_color): Emit ::color_changed every time we notify current_color. (Brute force fix for #72470, Matthias Clasen). Some fixes to improve reentrancy.
Diffstat (limited to 'gtk')
-rw-r--r--gtk/gtkcolorsel.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/gtk/gtkcolorsel.c b/gtk/gtkcolorsel.c
index c47164634c..3f78baaf3b 100644
--- a/gtk/gtkcolorsel.c
+++ b/gtk/gtkcolorsel.c
@@ -1562,10 +1562,16 @@ update_color (GtkColorSelection *colorsel)
gtk_entry_set_text (GTK_ENTRY (priv->hex_entry), entryval);
priv->changing = FALSE;
+ g_object_ref (colorsel);
+
+ g_signal_emit (colorsel, color_selection_signals[COLOR_CHANGED], 0);
+
g_object_freeze_notify (G_OBJECT (colorsel));
g_object_notify (G_OBJECT (colorsel), "current_color");
g_object_notify (G_OBJECT (colorsel), "current_alpha");
g_object_thaw_notify (G_OBJECT (colorsel));
+
+ g_object_unref (colorsel);
}
@@ -2177,8 +2183,8 @@ gtk_color_selection_set_current_color (GtkColorSelection *colorsel,
for (i = 0; i < COLORSEL_NUM_CHANNELS; i++)
priv->old_color[i] = priv->color[i];
}
- update_color (colorsel);
priv->default_set = TRUE;
+ update_color (colorsel);
}
/**
@@ -2206,8 +2212,8 @@ gtk_color_selection_set_current_alpha (GtkColorSelection *colorsel,
for (i = 0; i < COLORSEL_NUM_CHANNELS; i++)
priv->old_color[i] = priv->color[i];
}
- update_color (colorsel);
priv->default_alpha_set = TRUE;
+ update_color (colorsel);
}
/**
@@ -2247,9 +2253,9 @@ gtk_color_selection_set_color (GtkColorSelection *colorsel,
for (i = 0; i < COLORSEL_NUM_CHANNELS; i++)
priv->old_color[i] = priv->color[i];
}
- update_color (colorsel);
priv->default_set = TRUE;
priv->default_alpha_set = TRUE;
+ update_color (colorsel);
}
/**