gtk+ r21359 - in branches/gtk-2-12: . gtk
- From: matthiasc svn gnome org
- To: svn-commits-list gnome org
- Subject: gtk+ r21359 - in branches/gtk-2-12: . gtk
- Date: Fri, 12 Sep 2008 03:55:04 +0000 (UTC)
Author: matthiasc
Date: Fri Sep 12 03:55:04 2008
New Revision: 21359
URL: http://svn.gnome.org/viewvc/gtk+?rev=21359&view=rev
Log:
* gtk/gtktexttag.c (gtk_text_tag_set_property): Unset the color when
setting it to NULL instead of displaying a warning.
Patch by Xavier Claessens
* gtk/gtkassistant.c: Don't emit signals with extra parameters.
Patch by Antti KaijanmÃki
* gtk/gtksettings.c: When reconstructing the color hash, try
harder to avoid unnecessary notification, since this can lead
to infinite reloading of rc files in some situations.
Modified:
branches/gtk-2-12/ChangeLog
branches/gtk-2-12/gtk/gtkassistant.c
branches/gtk-2-12/gtk/gtksettings.c
branches/gtk-2-12/gtk/gtktexttag.c
Modified: branches/gtk-2-12/gtk/gtkassistant.c
==============================================================================
--- branches/gtk-2-12/gtk/gtkassistant.c (original)
+++ branches/gtk-2-12/gtk/gtkassistant.c Fri Sep 12 03:55:04 2008
@@ -601,13 +601,13 @@
success = compute_next_step (assistant);
- g_signal_emit (assistant, signals [APPLY], 0, priv->current_page->page);
+ g_signal_emit (assistant, signals [APPLY], 0);
/* if the assistant hasn't switched to another page, just emit
* the CLOSE signal, it't the last page in the assistant flow
*/
if (!success)
- g_signal_emit (assistant, signals [CLOSE], 0, priv->current_page->page);
+ g_signal_emit (assistant, signals [CLOSE], 0);
}
static void
Modified: branches/gtk-2-12/gtk/gtksettings.c
==============================================================================
--- branches/gtk-2-12/gtk/gtksettings.c (original)
+++ branches/gtk-2-12/gtk/gtksettings.c Fri Sep 12 03:55:04 2008
@@ -1726,14 +1726,13 @@
if (property_id == PROP_COLOR_SCHEME)
{
GValue value = { 0, };
-
+
g_value_init (&value, G_TYPE_STRING);
if (!gdk_screen_get_setting (settings->screen, pspec->name, &value))
g_value_set_static_string (&value, "");
merge_color_scheme (settings, &value, GTK_SETTINGS_SOURCE_XSETTING);
g_value_unset (&value);
}
-
g_object_notify (G_OBJECT (settings), pspec->name);
}
}
@@ -2052,6 +2051,7 @@
{
gboolean changed = FALSE;
gint i;
+ GHashTable *old_hash;
if ((str == NULL || *str == '\0') &&
(data->lastentry[source] == NULL || data->lastentry[source][0] == '\0'))
@@ -2085,8 +2085,7 @@
return FALSE;
/* Rebuild the merged hash table. */
- if (data->color_hash)
- g_hash_table_unref (data->color_hash);
+ old_hash = data->color_hash;
data->color_hash = g_hash_table_new_full (g_str_hash, g_str_equal, g_free,
(GDestroyNotify) gdk_color_free);
for (i = 0; i <= GTK_SETTINGS_SOURCE_APPLICATION; i++)
@@ -2096,7 +2095,35 @@
data->color_hash);
}
- return TRUE;
+ if (old_hash)
+ {
+ /* now check if the merged hash has changed */
+ changed = FALSE;
+ if (g_hash_table_size (old_hash) != g_hash_table_size (data->color_hash))
+ changed = TRUE;
+ else
+ {
+ GHashTableIter iter;
+ gpointer key, value, new_value;
+
+ g_hash_table_iter_init (&iter, old_hash);
+ while (g_hash_table_iter_next (&iter, &key, &value))
+ {
+ new_value = g_hash_table_lookup (data->color_hash, key);
+ if (!new_value || !gdk_color_equal (value, new_value))
+ {
+ changed = TRUE;
+ break;
+ }
+ }
+ }
+
+ g_hash_table_unref (old_hash);
+ }
+ else
+ changed = TRUE;
+
+ return changed;
}
static void
Modified: branches/gtk-2-12/gtk/gtktexttag.c
==============================================================================
--- branches/gtk-2-12/gtk/gtktexttag.c (original)
+++ branches/gtk-2-12/gtk/gtktexttag.c Fri Sep 12 03:55:04 2008
@@ -1002,7 +1002,9 @@
{
GdkColor color;
- if (gdk_color_parse (g_value_get_string (value), &color))
+ if (!g_value_get_string (value))
+ set_bg_color (text_tag, NULL); /* reset to background_set to FALSE */
+ else if (gdk_color_parse (g_value_get_string (value), &color))
set_bg_color (text_tag, &color);
else
g_warning ("Don't know color `%s'", g_value_get_string (value));
@@ -1015,7 +1017,9 @@
{
GdkColor color;
- if (gdk_color_parse (g_value_get_string (value), &color))
+ if (!g_value_get_string (value))
+ set_fg_color (text_tag, NULL); /* reset to foreground_set to FALSE */
+ else if (gdk_color_parse (g_value_get_string (value), &color))
set_fg_color (text_tag, &color);
else
g_warning ("Don't know color `%s'", g_value_get_string (value));
@@ -1295,7 +1299,9 @@
{
GdkColor color;
- if (gdk_color_parse (g_value_get_string (value), &color))
+ if (!g_value_get_string (value))
+ set_pg_bg_color (text_tag, NULL); /* reset to paragraph_background_set to FALSE */
+ else if (gdk_color_parse (g_value_get_string (value), &color))
set_pg_bg_color (text_tag, &color);
else
g_warning ("Don't know color `%s'", g_value_get_string (value));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]