Index: panel-background.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-background.c,v
retrieving revision 1.12
diff -u -r1.12 panel-background.c
--- panel-background.c	19 Sep 2003 23:52:15 -0000	1.12
+++ panel-background.c	20 Oct 2003 14:30:50 -0000
@@ -309,6 +309,8 @@
 
 	panel_background_prepare (background);
 
+	panel_widget_background_changed (background->panel);
+
 	return TRUE;
 }
 
@@ -810,9 +812,10 @@
 }
 
 void
-panel_background_init (PanelBackground *background)
+panel_background_init (PanelBackground *background, GtkWidget *panel)
 {
 	background->type = PANEL_BACK_NONE;
+	background->panel = panel;
 
 	background->color.gdk.red   = 0;
 	background->color.gdk.blue  = 0;
Index: panel-background.h
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-background.h,v
retrieving revision 1.2
diff -u -r1.2 panel-background.h
--- panel-background.h	5 Mar 2003 01:11:34 -0000	1.2
+++ panel-background.h	20 Oct 2003 14:30:50 -0000
@@ -36,6 +36,7 @@
 
 struct _PanelBackground {
 	PanelBackgroundType     type;
+	GtkWidget              *panel;
 
 	PanelColor              color;
 	char                   *image;
@@ -70,7 +71,8 @@
 	guint                   prepared : 1;
 };
 
-void  panel_background_init              (PanelBackground     *background);
+void  panel_background_init              (PanelBackground     *background,
+					  GtkWidget *panel);
 void  panel_background_free              (PanelBackground     *background);
 void  panel_background_set               (PanelBackground     *background,
 					  PanelBackgroundType  type,
Index: panel-widget.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-widget.c,v
retrieving revision 1.365
diff -u -r1.365 panel-widget.c
--- panel-widget.c	6 Oct 2003 13:23:31 -0000	1.365
+++ panel-widget.c	20 Oct 2003 14:30:51 -0000
@@ -33,6 +33,7 @@
 
 enum {
 	SIZE_CHANGE_SIGNAL,
+	BACK_CHANGE_SIGNAL,
 	APPLET_MOVE_SIGNAL,
 	APPLET_ADDED_SIGNAL,
 	APPLET_REMOVED_SIGNAL,
@@ -337,6 +338,17 @@
                               G_TYPE_NONE,
                               0);
 
+	panel_widget_signals[BACK_CHANGE_SIGNAL] =
+                g_signal_new ("back_change",
+                              G_TYPE_FROM_CLASS (object_class),
+                              G_SIGNAL_RUN_LAST,
+                              G_STRUCT_OFFSET (PanelWidgetClass, back_change),
+                              NULL,
+                              NULL, 
+                              panel_marshal_VOID__VOID,
+                              G_TYPE_NONE,
+                              0);
+
 	panel_widget_signals[APPLET_MOVE_SIGNAL] =
                 g_signal_new ("applet_move",
                               G_TYPE_FROM_CLASS (object_class),
@@ -433,6 +445,7 @@
                               0);
 
 	class->size_change = NULL;
+	class->back_change = NULL;
 	class->applet_move = NULL;
 	class->applet_added = NULL;
 	class->applet_removed = NULL;
@@ -1710,7 +1723,7 @@
 	panel->drop_widget   = widget;
 	panel->open_dialogs  = NULL;
 
-	panel_background_init (&panel->background);
+	panel_background_init (&panel->background, widget);
 
 	panels = g_slist_append (panels, panel);
 }
@@ -2607,6 +2620,13 @@
 	g_signal_emit (panel_widget, panel_widget_signals [SIZE_CHANGE_SIGNAL], 0);
 
 	gtk_widget_queue_resize (GTK_WIDGET (panel_widget));
+}
+
+void
+panel_widget_background_changed (GtkWidget *panel)
+{
+	g_return_if_fail (PANEL_IS_WIDGET (panel));
+	g_signal_emit (panel, panel_widget_signals [BACK_CHANGE_SIGNAL], 0);
 }
 
 static void 
Index: panel-widget.h
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel-widget.h,v
retrieving revision 1.157
diff -u -r1.157 panel-widget.h
--- panel-widget.h	6 Oct 2003 13:23:32 -0000	1.157
+++ panel-widget.h	20 Oct 2003 14:30:51 -0000
@@ -105,6 +105,7 @@
 	GtkFixedClass parent_class;
 
 	void (* size_change) (PanelWidget *panel);
+	void (* back_change) (PanelWidget *panel);
 	void (* applet_move) (PanelWidget *panel,
 			      GtkWidget *applet);
 	void (* applet_added) (PanelWidget *panel,
@@ -163,6 +164,7 @@
 						 GtkOrientation  orientation);
 void            panel_widget_set_size           (PanelWidget    *panel_widget,
 						 int             size);
+void            panel_widget_background_changed (GtkWidget *panel);
 
 /*draw EVERYTHING (meaning icons)*/
 void		panel_widget_draw_all		(PanelWidget *panel,
Index: panel.c
===================================================================
RCS file: /cvs/gnome/gnome-panel/gnome-panel/panel.c,v
retrieving revision 1.527
diff -u -r1.527 panel.c
--- panel.c	13 Oct 2003 13:03:56 -0000	1.527
+++ panel.c	20 Oct 2003 14:30:51 -0000
@@ -148,7 +148,6 @@
 			      widget);
 }
 
-#ifdef FIXME_FOR_NEW_CONFIG
 void
 back_change (AppletInfo  *info,
 	     PanelWidget *panel)
@@ -181,7 +180,6 @@
 	update_config_back(PANEL_WIDGET(widget));
 #endif /* FIXME_FOR_NEW_CONFIG */
 }
-#endif
 
 static void
 panel_applet_added(GtkWidget *widget, GtkWidget *applet, gpointer data)
@@ -1077,12 +1075,10 @@
 			  "applet_move",
 			  G_CALLBACK(panel_applet_move),
 			  NULL);
-#ifdef FIXME_FOR_NEW_TOPLEVEL
 	g_signal_connect (G_OBJECT (panel),
 			  "back_change",
 			  G_CALLBACK (panel_back_change),
 			  NULL);
-#endif
 	g_signal_connect (G_OBJECT (panel),
 			  "size_change",
 			  G_CALLBACK (panel_size_change),
