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> 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)" * background-properties-capplet.c (create_dialog): Add a "(none)"
string to the history 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))) #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; static gboolean gdk_pixbuf_xlib_inited = FALSE;
typedef struct _Renderer Renderer; typedef struct _Renderer Renderer;
@ -76,7 +75,7 @@ struct _Renderer
gboolean is_root; gboolean is_root;
gboolean is_set; gboolean is_set;
Applier *applier; GtkWidget *widget;
Preferences *prefs; Preferences *prefs;
gint x; /* Geometry relative to pixmap */ gint x; /* Geometry relative to pixmap */
@ -316,7 +315,7 @@ applier_apply_prefs (Applier *applier, Preferences *prefs,
} }
if (!prefs->enabled) { if (!prefs->enabled) {
draw_disabled_message (applier_class_get_preview_widget ()); draw_disabled_message (applier_get_preview_widget (applier));
return; return;
} }
@ -407,7 +406,7 @@ applier_apply_prefs (Applier *applier, Preferences *prefs,
} }
GtkWidget * GtkWidget *
applier_class_get_preview_widget (void) applier_get_preview_widget (Applier *applier)
{ {
GdkPixbuf *pixbuf; GdkPixbuf *pixbuf;
GdkPixmap *pixmap; GdkPixmap *pixmap;
@ -418,7 +417,7 @@ applier_class_get_preview_widget (void)
gchar *filename; gchar *filename;
GdkGC *gc; 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"); filename = gnome_pixmap_file ("monitor.png");
visual = gdk_window_get_visual (GDK_ROOT_PARENT ()); visual = gdk_window_get_visual (GDK_ROOT_PARENT ());
@ -477,15 +476,15 @@ applier_class_get_preview_widget (void)
mask = NULL; mask = NULL;
} }
preview_widget = gtk_pixmap_new (pixmap, mask); applier->private->preview_widget = gtk_pixmap_new (pixmap, mask);
gtk_widget_show (preview_widget); gtk_widget_show (applier->private->preview_widget);
gdk_pixbuf_unref (pixbuf); gdk_pixbuf_unref (pixbuf);
g_free (filename); g_free (filename);
gtk_widget_pop_visual (); gtk_widget_pop_visual ();
gtk_widget_pop_colormap (); gtk_widget_pop_colormap ();
return preview_widget; return applier->private->preview_widget;
} }
static void static void
@ -610,10 +609,11 @@ renderer_new (Applier *applier, gboolean is_root)
renderer->pixmap = 0; renderer->pixmap = 0;
renderer->is_set = FALSE; renderer->is_set = FALSE;
} else { } else {
if (!GTK_WIDGET_REALIZED (applier->private->preview_widget)) renderer->widget = applier_get_preview_widget (applier);
gtk_widget_realize (applier->private->preview_widget);
if (!GTK_WIDGET_REALIZED (renderer->widget))
gtk_widget_realize (renderer->widget);
renderer->applier = applier;
renderer->x = MONITOR_CONTENTS_X; renderer->x = MONITOR_CONTENTS_X;
renderer->y = MONITOR_CONTENTS_Y; renderer->y = MONITOR_CONTENTS_Y;
renderer->width = MONITOR_CONTENTS_WIDTH; renderer->width = MONITOR_CONTENTS_WIDTH;
@ -841,9 +841,10 @@ renderer_render_wallpaper (Renderer *renderer)
(renderer->wallpaper_pixbuf, (renderer->wallpaper_pixbuf,
renderer->pixbuf, renderer->pixbuf,
renderer->wx, renderer->wy, renderer->wx, renderer->wy,
renderer->wwidth, MIN (renderer->wwidth, renderer->width),
renderer->wheight, MIN (renderer->wheight, renderer->height),
renderer->wx, renderer->wy, renderer->wx - renderer->srcx,
renderer->wy - renderer->srcy,
scalex, scaley, scalex, scaley,
GDK_INTERP_BILINEAR); GDK_INTERP_BILINEAR);
} else { } else {
@ -980,7 +981,7 @@ renderer_render_to_screen (Renderer *renderer)
gdk_window_clear (GDK_ROOT_PARENT ()); gdk_window_clear (GDK_ROOT_PARENT ());
} else { } else {
gdk_color_alloc (gdk_window_get_colormap gdk_color_alloc (gdk_window_get_colormap
(renderer->applier->private->preview_widget->window), (renderer->widget->window),
renderer->prefs->color1); renderer->prefs->color1);
gdk_gc_set_foreground (gc, renderer->prefs->color1); gdk_gc_set_foreground (gc, renderer->prefs->color1);
XFillRectangle (GDK_DISPLAY (), renderer->pixmap, xgc, 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, void applier_apply_prefs (Applier *applier, Preferences *prefs,
gboolean do_root, gboolean do_preview); gboolean do_root, gboolean do_preview);
GtkWidget *applier_class_get_preview_widget (void); GtkWidget *applier_get_preview_widget (Applier *applier);
#endif /* __APPLIER_H */ #endif /* __APPLIER_H */

View file

@ -220,6 +220,7 @@ static void
setup_dialog (GtkWidget *widget, Bonobo_PropertyBag bag) setup_dialog (GtkWidget *widget, Bonobo_PropertyBag bag)
{ {
GladeXML *dialog; GladeXML *dialog;
Applier *applier;
dialog = gtk_object_get_data (GTK_OBJECT (widget), "glade-data"); dialog = gtk_object_get_data (GTK_OBJECT (widget), "glade-data");
CUSTOM_CREATE_PEDITOR (option_menu, ulong, "orientation", "color_option"); 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, bonobo_event_source_client_add_listener (bag, property_change_cb,
NULL, NULL, bag); 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* static GtkWidget*
@ -252,11 +254,12 @@ create_dialog (void)
gtk_object_set_data (GTK_OBJECT (widget), "glade-data", dialog); gtk_object_set_data (GTK_OBJECT (widget), "glade-data", dialog);
applier = APPLIER (applier_new ()); applier = APPLIER (applier_new ());
gtk_object_set_data (GTK_OBJECT (widget), "applier", applier);
/* Minor GUI addition */ /* Minor GUI addition */
holder = WID ("preview_holder"); holder = WID ("preview_holder");
gtk_box_pack_start (GTK_BOX (holder), gtk_box_pack_start (GTK_BOX (holder),
applier_class_get_preview_widget (), applier_get_preview_widget (applier),
TRUE, TRUE, 0); TRUE, TRUE, 0);
gtk_widget_show_all (holder); gtk_widget_show_all (holder);

View file

@ -93,7 +93,7 @@ preferences_init (Preferences *prefs)
prefs->orientation = ORIENTATION_VERT; prefs->orientation = ORIENTATION_VERT;
prefs->wallpaper_type = WPTYPE_TILED; prefs->wallpaper_type = WPTYPE_TILED;
prefs->wallpaper_filename = NULL; 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->auto_apply = TRUE;
prefs->wallpapers = NULL; prefs->wallpapers = NULL;
prefs->adjust_opacity = TRUE; prefs->adjust_opacity = TRUE;