From 589923f166b1a01cb751b046d46bd76b91618e5a Mon Sep 17 00:00:00 2001 From: Bradford Hovinen Date: Sun, 10 Sep 2000 19:42:19 +0000 Subject: [PATCH] Set gradient/wallpaper/background controls' sensitivity depending on 2000-09-10 Bradford Hovinen * 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 --- ChangeLog | 9 +++++++++ capplets/background/applier.c | 29 ++++++++++++++++++++++------- capplets/background/prefs-widget.c | 28 +++++++++++++++++++--------- 3 files changed, 50 insertions(+), 16 deletions(-) diff --git a/ChangeLog b/ChangeLog index 18772c2f5..280108316 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,14 @@ 2000-09-10 Bradford Hovinen + * 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 diff --git a/capplets/background/applier.c b/capplets/background/applier.c index 797d7063f..2b0b700e2 100644 --- a/capplets/background/applier.c +++ b/capplets/background/applier.c @@ -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); diff --git a/capplets/background/prefs-widget.c b/capplets/background/prefs-widget.c index a9a083442..831133f51 100644 --- a/capplets/background/prefs-widget.c +++ b/capplets/background/prefs-widget.c @@ -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 {