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>
* 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 ...
* *.desktop, *.directory: Updated French translations
* po/POTFILES.in: Added screensaver XML files

View file

@ -663,15 +663,15 @@ renderer_render_background (Renderer *renderer)
renderer->gwidth = 32;
}
if (renderer->pixbuf != NULL)
gdk_pixbuf_unref (renderer->pixbuf);
renderer->gradient_data =
fill_gradient (renderer->gwidth, renderer->gheight,
renderer->prefs->color1,
renderer->prefs->color2,
renderer->prefs->orientation);
if (renderer->pixbuf != NULL)
gdk_pixbuf_unref (renderer->pixbuf);
renderer->pixbuf =
gdk_pixbuf_new_from_data (renderer->gradient_data,
GDK_COLORSPACE_RGB,
@ -837,12 +837,27 @@ renderer_render_to_screen (Renderer *renderer)
renderer->wwidth, renderer->wheight,
GDK_RGB_DITHER_NORMAL, 0, 0);
} else {
gdk_window_set_background (GDK_ROOT_PARENT(),
renderer->prefs->color1);
gdk_window_clear (GDK_ROOT_PARENT());
if (renderer->is_root) {
gdk_color_alloc (gdk_window_get_colormap
(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);
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->blue, 0xffff);
if (prefs->gradient_enabled)
if (prefs->gradient_enabled) {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(WID ("gradient_select")),
TRUE);
else
set_gradient_controls_sensitive (prefs_widget, TRUE);
} else {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(WID ("solid_select")),
TRUE);
set_gradient_controls_sensitive (prefs_widget, FALSE);
}
if (prefs->orientation == ORIENTATION_VERT)
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
@ -320,10 +323,13 @@ read_preferences (PrefsWidget *prefs_widget, Preferences *prefs)
prefs->wallpaper_sel_path);
if (prefs->wallpaper_filename) {
entry = gnome_file_entry_gtk_entry
(GNOME_FILE_ENTRY (widget));
gtk_entry_set_text (GTK_ENTRY (entry),
prefs->wallpaper_filename);
entry = gnome_file_entry_gtk_entry
(GNOME_FILE_ENTRY (widget));
gtk_entry_set_text (GTK_ENTRY (entry),
prefs->wallpaper_filename);
set_wallpaper_controls_sensitive (prefs_widget, TRUE);
} else {
set_wallpaper_controls_sensitive (prefs_widget, FALSE);
}
switch (prefs->wallpaper_type) {
@ -356,14 +362,17 @@ read_preferences (PrefsWidget *prefs_widget, Preferences *prefs)
break;
}
if (prefs->enabled)
if (prefs->enabled) {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(WID ("disable_toggle")),
FALSE);
else
set_background_controls_sensitive (prefs_widget, TRUE);
} else {
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON
(WID ("disable_toggle")),
TRUE);
set_background_controls_sensitive (prefs_widget, FALSE);
}
preferences_apply_preview (prefs);
}
@ -495,7 +504,8 @@ wallpaper_entry_changed_cb (GtkEntry *e, PrefsWidget *prefs_widget)
if (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);
prefs_widget->prefs->wallpaper_enabled = TRUE;
} else {