Set gradient/wallpaper/background controls' sensitivity depending on

2000-09-10  Bradford Hovinen  <hovinen@helixcode.com>

	* capplets/new-background-properties/prefs-widget.c
	(read_preferences): Set gradient/wallpaper/background controls'
	sensitivity depending on whether they are enabled

	* capplets/new-background-properties/applier.c
	(renderer_render_to_screen): Fixed solid, no wallpaper case to
	work correctly with preview window; don't set root pixmap if
	neither wallpaper nor gradient enabled
This commit is contained in:
Bradford Hovinen 2000-09-10 19:42:19 +00:00 committed by Bradford Hovinen (Gdict maintainer)
parent 99aa241dba
commit 589923f166
3 changed files with 50 additions and 16 deletions

View file

@ -1,5 +1,14 @@
2000-09-10 Bradford Hovinen <hovinen@helixcode.com> 2000-09-10 Bradford Hovinen <hovinen@helixcode.com>
* capplets/new-background-properties/prefs-widget.c
(read_preferences): Set gradient/wallpaper/background controls'
sensitivity depending on whether they are enabled
* capplets/new-background-properties/applier.c
(renderer_render_to_screen): Fixed solid, no wallpaper case to
work correctly with preview window; don't set root pixmap if
neither wallpaper nor gradient enabled
* all: Chnaged #include "config.h" to #ifdef HAVE_CONFIG_H ... * all: Chnaged #include "config.h" to #ifdef HAVE_CONFIG_H ...
* *.desktop, *.directory: Updated French translations * *.desktop, *.directory: Updated French translations
* po/POTFILES.in: Added screensaver XML files * po/POTFILES.in: Added screensaver XML files

View file

@ -663,15 +663,15 @@ renderer_render_background (Renderer *renderer)
renderer->gwidth = 32; renderer->gwidth = 32;
} }
if (renderer->pixbuf != NULL)
gdk_pixbuf_unref (renderer->pixbuf);
renderer->gradient_data = renderer->gradient_data =
fill_gradient (renderer->gwidth, renderer->gheight, fill_gradient (renderer->gwidth, renderer->gheight,
renderer->prefs->color1, renderer->prefs->color1,
renderer->prefs->color2, renderer->prefs->color2,
renderer->prefs->orientation); renderer->prefs->orientation);
if (renderer->pixbuf != NULL)
gdk_pixbuf_unref (renderer->pixbuf);
renderer->pixbuf = renderer->pixbuf =
gdk_pixbuf_new_from_data (renderer->gradient_data, gdk_pixbuf_new_from_data (renderer->gradient_data,
GDK_COLORSPACE_RGB, GDK_COLORSPACE_RGB,
@ -837,12 +837,27 @@ renderer_render_to_screen (Renderer *renderer)
renderer->wwidth, renderer->wheight, renderer->wwidth, renderer->wheight,
GDK_RGB_DITHER_NORMAL, 0, 0); GDK_RGB_DITHER_NORMAL, 0, 0);
} else { } else {
gdk_window_set_background (GDK_ROOT_PARENT(), if (renderer->is_root) {
renderer->prefs->color1); gdk_color_alloc (gdk_window_get_colormap
gdk_window_clear (GDK_ROOT_PARENT()); (GDK_ROOT_PARENT()),
renderer->prefs->color1);
gdk_window_set_background (GDK_ROOT_PARENT (),
renderer->prefs->color1);
gdk_window_clear (GDK_ROOT_PARENT ());
} else {
gdk_color_alloc (gdk_window_get_colormap
(preview_widget->window),
renderer->prefs->color1);
gdk_gc_set_foreground (gc, renderer->prefs->color1);
XFillRectangle (GDK_DISPLAY (), renderer->pixmap, xgc,
renderer->x, renderer->y,
renderer->width, renderer->height);
}
} }
if (renderer->is_root && !renderer->is_set) if (renderer->is_root && !renderer->is_set &&
(renderer->prefs->wallpaper_enabled ||
renderer->prefs->gradient_enabled))
set_root_pixmap (renderer->pixmap); set_root_pixmap (renderer->pixmap);
gdk_gc_destroy (gc); gdk_gc_destroy (gc);

View file

@ -294,14 +294,17 @@ read_preferences (PrefsWidget *prefs_widget, Preferences *prefs)
prefs->color2->red, prefs->color2->green, prefs->color2->red, prefs->color2->green,
prefs->color2->blue, 0xffff); prefs->color2->blue, 0xffff);
if (prefs->gradient_enabled) if (prefs->gradient_enabled) {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(WID ("gradient_select")), (WID ("gradient_select")),
TRUE); TRUE);
else set_gradient_controls_sensitive (prefs_widget, TRUE);
} else {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(WID ("solid_select")), (WID ("solid_select")),
TRUE); TRUE);
set_gradient_controls_sensitive (prefs_widget, FALSE);
}
if (prefs->orientation == ORIENTATION_VERT) if (prefs->orientation == ORIENTATION_VERT)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
@ -320,10 +323,13 @@ read_preferences (PrefsWidget *prefs_widget, Preferences *prefs)
prefs->wallpaper_sel_path); prefs->wallpaper_sel_path);
if (prefs->wallpaper_filename) { if (prefs->wallpaper_filename) {
entry = gnome_file_entry_gtk_entry entry = gnome_file_entry_gtk_entry
(GNOME_FILE_ENTRY (widget)); (GNOME_FILE_ENTRY (widget));
gtk_entry_set_text (GTK_ENTRY (entry), gtk_entry_set_text (GTK_ENTRY (entry),
prefs->wallpaper_filename); prefs->wallpaper_filename);
set_wallpaper_controls_sensitive (prefs_widget, TRUE);
} else {
set_wallpaper_controls_sensitive (prefs_widget, FALSE);
} }
switch (prefs->wallpaper_type) { switch (prefs->wallpaper_type) {
@ -356,14 +362,17 @@ read_preferences (PrefsWidget *prefs_widget, Preferences *prefs)
break; break;
} }
if (prefs->enabled) if (prefs->enabled) {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(WID ("disable_toggle")), (WID ("disable_toggle")),
FALSE); FALSE);
else set_background_controls_sensitive (prefs_widget, TRUE);
} else {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(WID ("disable_toggle")), (WID ("disable_toggle")),
TRUE); TRUE);
set_background_controls_sensitive (prefs_widget, FALSE);
}
preferences_apply_preview (prefs); preferences_apply_preview (prefs);
} }
@ -495,7 +504,8 @@ wallpaper_entry_changed_cb (GtkEntry *e, PrefsWidget *prefs_widget)
if (prefs_widget->prefs->wallpaper_filename && if (prefs_widget->prefs->wallpaper_filename &&
strlen (prefs_widget->prefs->wallpaper_filename) && strlen (prefs_widget->prefs->wallpaper_filename) &&
g_strcasecmp (prefs_widget->prefs->wallpaper_filename, "none")) { g_strcasecmp (prefs_widget->prefs->wallpaper_filename, "none"))
{
set_wallpaper_controls_sensitive (prefs_widget, TRUE); set_wallpaper_controls_sensitive (prefs_widget, TRUE);
prefs_widget->prefs->wallpaper_enabled = TRUE; prefs_widget->prefs->wallpaper_enabled = TRUE;
} else { } else {