don't allocate colors in the colormap (update_cursor_size_scale),

2007-07-05  Jens Granseuer  <jensgr@gmx.net>

	* appearance-style.c: (update_color_buttons_from_string): don't allocate
	colors in the colormap
	(update_cursor_size_scale), (cursor_size_scale_value_changed_cb): don't
	crash if we have nothing but the default cursor theme

svn path=/trunk/; revision=7829
This commit is contained in:
Jens Granseuer 2007-07-05 20:00:50 +00:00 committed by Jens Granseuer
parent 118a8090ba
commit 386043886c
2 changed files with 18 additions and 13 deletions

View file

@ -1,3 +1,10 @@
2007-07-05 Jens Granseuer <jensgr@gmx.net>
* appearance-style.c: (update_color_buttons_from_string): don't allocate
colors in the colormap
(update_cursor_size_scale), (cursor_size_scale_value_changed_cb): don't
crash if we have nothing but the default cursor theme
2007-07-05 Denis Washington <denisw@svn.gnome.org> 2007-07-05 Denis Washington <denisw@svn.gnome.org>
* appearance.glade: set an explicit item width for the metatheme icon * appearance.glade: set an explicit item width for the metatheme icon

View file

@ -170,10 +170,6 @@ update_color_buttons_from_string (const gchar *color_scheme, AppearanceData *dat
g_strfreev (color_scheme_strings); g_strfreev (color_scheme_strings);
/* not sure whether we need to do this, but it can't hurt */
for (i = 0; i < 6; i++)
gdk_colormap_alloc_color (gdk_colormap_get_system (), &color_scheme_colors[i], FALSE, TRUE);
/* now set all the buttons to the correct settings */ /* now set all the buttons to the correct settings */
widget = glade_xml_get_widget (data->xml, "fg_colorbutton"); widget = glade_xml_get_widget (data->xml, "fg_colorbutton");
gtk_color_button_set_color (GTK_COLOR_BUTTON (widget), &color_scheme_colors[0]); gtk_color_button_set_color (GTK_COLOR_BUTTON (widget), &color_scheme_colors[0]);
@ -382,7 +378,7 @@ update_cursor_size_scale (GnomeThemeCursorInfo *theme,
cursor_size_scale = glade_xml_get_widget (data->xml, "cursor_size_scale"); cursor_size_scale = glade_xml_get_widget (data->xml, "cursor_size_scale");
if (theme->sizes->len == 1) if (!theme || theme->sizes->len == 1)
{ {
gtk_widget_set_sensitive (cursor_size_scale, FALSE); gtk_widget_set_sensitive (cursor_size_scale, FALSE);
} }
@ -424,19 +420,19 @@ update_cursor_size_scale (GnomeThemeCursorInfo *theme,
diff = size - gconf_size; diff = size - gconf_size;
diff_to_last = gconf_size - g_array_index (theme->sizes, gint, i - 1); diff_to_last = gconf_size - g_array_index (theme->sizes, gint, i - 1);
gtk_range_set_value (GTK_RANGE (cursor_size_scale), (gdouble) (diff < diff_to_last) ? diff : diff_to_last); gtk_range_set_value (GTK_RANGE (cursor_size_scale), (gdouble) (diff < diff_to_last) ? diff : diff_to_last);
size_found = TRUE; size_found = TRUE;
break; break;
} }
} }
} }
/* set to the biggest size if the gconf value is bigger than /* set to the biggest size if the gconf value is bigger than
all available sizes */ all available sizes */
if (!size_found) if (!size_found)
gtk_range_set_value (GTK_RANGE (cursor_size_scale), (gdouble) g_array_index (theme->sizes, gint, theme->sizes->len - 1)); gtk_range_set_value (GTK_RANGE (cursor_size_scale), (gdouble) g_array_index (theme->sizes, gint, theme->sizes->len - 1));
} }
} }
static void static void
@ -517,12 +513,14 @@ static void
cursor_size_scale_value_changed_cb (GtkRange *range, AppearanceData *data) cursor_size_scale_value_changed_cb (GtkRange *range, AppearanceData *data)
{ {
GnomeThemeCursorInfo *theme; GnomeThemeCursorInfo *theme;
gint size;
theme = gnome_theme_cursor_info_find (gconf_client_get_string (data->client, CURSOR_THEME_KEY, NULL)); theme = gnome_theme_cursor_info_find (gconf_client_get_string (data->client, CURSOR_THEME_KEY, NULL));
if (theme) {
gint size;
size = g_array_index (theme->sizes, gint, (int) gtk_range_get_value (range)); size = g_array_index (theme->sizes, gint, (int) gtk_range_get_value (range));
gconf_client_set_int (data->client, CURSOR_SIZE_KEY, size, NULL); gconf_client_set_int (data->client, CURSOR_SIZE_KEY, size, NULL);
}
} }
static void static void
@ -786,7 +784,7 @@ prepare_list (AppearanceData *data, GtkWidget *list, ThemeType type, GCallback c
data, data,
NULL); NULL);
break; break;
case THEME_TYPE_CURSOR: case THEME_TYPE_CURSOR:
thumbnail = ((GnomeThemeCursorInfo *) l->data)->thumbnail; thumbnail = ((GnomeThemeCursorInfo *) l->data)->thumbnail;
break; break;