We don't need a root pixmap if neither a wallpaper nor a gradient is

2002-02-17  Bradford Hovinen  <hovinen@ximian.com>

	* applier.c (need_root_pixmap_p): We don't need a root pixmap if
	neither a wallpaper nor a gradient is enabled
	(render_to_screen): Use set_back_pixmap/set_background when just
	setting a color with a root applier
	(need_root_pixmap_p): If the last preferences structure had
	neither gradient nor wallpaper enabled, we need a new root pixmap
This commit is contained in:
Bradford Hovinen 2002-02-17 20:34:33 +00:00 committed by Bradford Hovinen (Gdict maintainer)
parent e31e31be03
commit 323e20bead
2 changed files with 28 additions and 7 deletions

View file

@ -1,3 +1,12 @@
2002-02-17 Bradford Hovinen <hovinen@ximian.com>
* applier.c (need_root_pixmap_p): We don't need a root pixmap if
neither a wallpaper nor a gradient is enabled
(render_to_screen): Use set_back_pixmap/set_background when just
setting a color with a root applier
(need_root_pixmap_p): If the last preferences structure had
neither gradient nor wallpaper enabled, we need a new root pixmap
2002-02-12 Lauris Kaplinski <lauris@ximian.com>
* applier.c (draw_disabled_message): Use g_object_unref for GdkGC

View file

@ -774,6 +774,7 @@ render_to_screen (BGApplier *bg_applier, const BGPreferences *prefs)
gdk_colormap_alloc_colors (gdk_drawable_get_colormap (gdk_get_default_root_window ()),
prefs->color1, 1, FALSE, TRUE, &success);
#endif
gdk_gc_set_foreground (gc, prefs->color1);
gdk_draw_rectangle (bg_applier->p->pixmap, gc, TRUE,
bg_applier->p->render_geom.x,
@ -814,12 +815,19 @@ render_to_screen (BGApplier *bg_applier, const BGPreferences *prefs)
gdk_colormap_alloc_colors (gdk_drawable_get_colormap (gdk_get_default_root_window ()),
prefs->color1, 1, FALSE, TRUE, &success);
#endif
gdk_gc_set_foreground (gc, prefs->color1);
gdk_draw_rectangle (bg_applier->p->pixmap, gc, TRUE,
bg_applier->p->render_geom.x,
bg_applier->p->render_geom.y,
bg_applier->p->render_geom.width,
bg_applier->p->render_geom.height);
if (bg_applier->p->type == BG_APPLIER_PREVIEW) {
gdk_gc_set_foreground (gc, prefs->color1);
gdk_draw_rectangle (bg_applier->p->pixmap, gc, TRUE,
bg_applier->p->render_geom.x,
bg_applier->p->render_geom.y,
bg_applier->p->render_geom.width,
bg_applier->p->render_geom.height);
}
else if (bg_applier->p->type == BG_APPLIER_ROOT) {
gdk_window_set_back_pixmap (GDK_ROOT_PARENT (), NULL, FALSE);
gdk_window_set_background (GDK_ROOT_PARENT (), prefs->color1);
}
}
}
@ -1251,7 +1259,11 @@ need_wallpaper_load_p (const BGApplier *bg_applier, const BGPreferences *prefs)
static gboolean
need_root_pixmap_p (const BGApplier *bg_applier, const BGPreferences *prefs)
{
if (bg_applier->p->last_prefs == NULL)
if (prefs->wallpaper_enabled == FALSE && prefs->gradient_enabled == FALSE)
return FALSE;
else if (bg_applier->p->last_prefs == NULL)
return TRUE;
else if (bg_applier->p->last_prefs->wallpaper_enabled == FALSE && bg_applier->p->last_prefs->gradient_enabled == FALSE)
return TRUE;
else if (render_small_pixmap_p (bg_applier->p->last_prefs) != render_small_pixmap_p (prefs))
return TRUE;