Restore some lost tweaks from earlier.

2001-07-26  Bradford Hovinen  <hovinen@ximian.com>

	* applier.c (renderer_render_wallpaper): Restore some lost tweaks
	from earlier.

	* preferences.c (preferences_init): strdup the home directory

	* applier.c: Store preview widget in the renderer, not the applier
	itself
This commit is contained in:
Bradford Hovinen 2001-07-27 02:15:42 +00:00 committed by Bradford Hovinen (Gdict maintainer)
parent 4e921471d4
commit 0336802107
5 changed files with 32 additions and 20 deletions

View file

@ -1,5 +1,13 @@
2001-07-26 Bradford Hovinen <hovinen@ximian.com>
* applier.c (renderer_render_wallpaper): Restore some lost tweaks
from earlier.
* preferences.c (preferences_init): strdup the home directory
* applier.c: Store preview widget in the renderer, not the applier
itself
* background-properties-capplet.c (create_dialog): Add a "(none)"
string to the history

View file

@ -47,7 +47,6 @@
#define PDEBUG(pix) (g_print ("file %s: line %d (%s): Setting pixbuf to %i %i\n", __FILE__, __LINE__, __PRETTY_FUNCTION__, gdk_pixbuf_get_width (pix), gdk_pixbuf_get_height (pix)))
static GtkWidget *preview_widget;
static gboolean gdk_pixbuf_xlib_inited = FALSE;
typedef struct _Renderer Renderer;
@ -76,7 +75,7 @@ struct _Renderer
gboolean is_root;
gboolean is_set;
Applier *applier;
GtkWidget *widget;
Preferences *prefs;
gint x; /* Geometry relative to pixmap */
@ -316,7 +315,7 @@ applier_apply_prefs (Applier *applier, Preferences *prefs,
}
if (!prefs->enabled) {
draw_disabled_message (applier_class_get_preview_widget ());
draw_disabled_message (applier_get_preview_widget (applier));
return;
}
@ -407,7 +406,7 @@ applier_apply_prefs (Applier *applier, Preferences *prefs,
}
GtkWidget *
applier_class_get_preview_widget (void)
applier_get_preview_widget (Applier *applier)
{
GdkPixbuf *pixbuf;
GdkPixmap *pixmap;
@ -418,7 +417,7 @@ applier_class_get_preview_widget (void)
gchar *filename;
GdkGC *gc;
if (preview_widget != NULL) return preview_widget;
if (applier->private->preview_widget != NULL) return applier->private->preview_widget;
filename = gnome_pixmap_file ("monitor.png");
visual = gdk_window_get_visual (GDK_ROOT_PARENT ());
@ -477,15 +476,15 @@ applier_class_get_preview_widget (void)
mask = NULL;
}
preview_widget = gtk_pixmap_new (pixmap, mask);
gtk_widget_show (preview_widget);
applier->private->preview_widget = gtk_pixmap_new (pixmap, mask);
gtk_widget_show (applier->private->preview_widget);
gdk_pixbuf_unref (pixbuf);
g_free (filename);
gtk_widget_pop_visual ();
gtk_widget_pop_colormap ();
return preview_widget;
return applier->private->preview_widget;
}
static void
@ -610,10 +609,11 @@ renderer_new (Applier *applier, gboolean is_root)
renderer->pixmap = 0;
renderer->is_set = FALSE;
} else {
if (!GTK_WIDGET_REALIZED (applier->private->preview_widget))
gtk_widget_realize (applier->private->preview_widget);
renderer->widget = applier_get_preview_widget (applier);
if (!GTK_WIDGET_REALIZED (renderer->widget))
gtk_widget_realize (renderer->widget);
renderer->applier = applier;
renderer->x = MONITOR_CONTENTS_X;
renderer->y = MONITOR_CONTENTS_Y;
renderer->width = MONITOR_CONTENTS_WIDTH;
@ -841,9 +841,10 @@ renderer_render_wallpaper (Renderer *renderer)
(renderer->wallpaper_pixbuf,
renderer->pixbuf,
renderer->wx, renderer->wy,
renderer->wwidth,
renderer->wheight,
renderer->wx, renderer->wy,
MIN (renderer->wwidth, renderer->width),
MIN (renderer->wheight, renderer->height),
renderer->wx - renderer->srcx,
renderer->wy - renderer->srcy,
scalex, scaley,
GDK_INTERP_BILINEAR);
} else {
@ -980,7 +981,7 @@ renderer_render_to_screen (Renderer *renderer)
gdk_window_clear (GDK_ROOT_PARENT ());
} else {
gdk_color_alloc (gdk_window_get_colormap
(renderer->applier->private->preview_widget->window),
(renderer->widget->window),
renderer->prefs->color1);
gdk_gc_set_foreground (gc, renderer->prefs->color1);
XFillRectangle (GDK_DISPLAY (), renderer->pixmap, xgc,

View file

@ -59,6 +59,6 @@ void applier_destroy (GtkObject *object);
void applier_apply_prefs (Applier *applier, Preferences *prefs,
gboolean do_root, gboolean do_preview);
GtkWidget *applier_class_get_preview_widget (void);
GtkWidget *applier_get_preview_widget (Applier *applier);
#endif /* __APPLIER_H */

View file

@ -220,6 +220,7 @@ static void
setup_dialog (GtkWidget *widget, Bonobo_PropertyBag bag)
{
GladeXML *dialog;
Applier *applier;
dialog = gtk_object_get_data (GTK_OBJECT (widget), "glade-data");
CUSTOM_CREATE_PEDITOR (option_menu, ulong, "orientation", "color_option");
@ -237,7 +238,8 @@ setup_dialog (GtkWidget *widget, Bonobo_PropertyBag bag)
bonobo_event_source_client_add_listener (bag, property_change_cb,
NULL, NULL, bag);
gtk_signal_connect_after (GTK_OBJECT (applier_class_get_preview_widget ()), "realize", realize_cb, bag);
applier = gtk_object_get_data (GTK_OBJECT (widget), "applier");
gtk_signal_connect_after (GTK_OBJECT (applier_get_preview_widget (applier)), "realize", realize_cb, bag);
}
static GtkWidget*
@ -252,11 +254,12 @@ create_dialog (void)
gtk_object_set_data (GTK_OBJECT (widget), "glade-data", dialog);
applier = APPLIER (applier_new ());
gtk_object_set_data (GTK_OBJECT (widget), "applier", applier);
/* Minor GUI addition */
holder = WID ("preview_holder");
gtk_box_pack_start (GTK_BOX (holder),
applier_class_get_preview_widget (),
applier_get_preview_widget (applier),
TRUE, TRUE, 0);
gtk_widget_show_all (holder);
@ -273,7 +276,7 @@ int
main (int argc, char **argv)
{
const gchar* legacy_files[] = { "Background", NULL };
glade_gnome_init ();
gnomelib_register_popt_table (options, "background options");

View file

@ -93,7 +93,7 @@ preferences_init (Preferences *prefs)
prefs->orientation = ORIENTATION_VERT;
prefs->wallpaper_type = WPTYPE_TILED;
prefs->wallpaper_filename = NULL;
prefs->wallpaper_sel_path = g_get_home_dir ();
prefs->wallpaper_sel_path = g_strdup (g_get_home_dir ());
prefs->auto_apply = TRUE;
prefs->wallpapers = NULL;
prefs->adjust_opacity = TRUE;