? engines/Makefile
? engines/Makefile.in
? engines/clearlooks/Makefile
? engines/clearlooks/Makefile.in
? engines/crux/pixmaps/Makefile
? engines/crux/pixmaps/Makefile.in
? engines/crux/src/config.h
? engines/crux/src/stamp-h1
? engines/crux/src/stamp-h2
? engines/hc/Makefile
? engines/hc/Makefile.in
? engines/industrial/Makefile
? engines/industrial/Makefile.in
? engines/lighthouseblue/Makefile
? engines/lighthouseblue/Makefile.in
? engines/metal/Makefile
? engines/metal/Makefile.in
? engines/mist/Makefile
? engines/mist/Makefile.in
? engines/redmond/Makefile
? engines/redmond/Makefile.in
? engines/smooth/Makefile
? engines/smooth/Makefile.in
? engines/smooth/src/config.h
? engines/smooth/src/stamp-h2
? engines/smooth/src/stamp-h3
? engines/thinice/Makefile
? engines/thinice/Makefile.in
? themes/Makefile
? themes/Makefile.in
? themes/Clearlooks/Makefile
? themes/Clearlooks/Makefile.in
? themes/Clearlooks/gtk-2.0/Makefile
? themes/Clearlooks/gtk-2.0/Makefile.in
? themes/Crux/Makefile
? themes/Crux/Makefile.in
? themes/Crux/gtk-2.0/Makefile
? themes/Crux/gtk-2.0/Makefile.in
? themes/Industrial/Makefile
? themes/Industrial/Makefile.in
? themes/Industrial/gtk-2.0/Makefile
? themes/Industrial/gtk-2.0/Makefile.in
? themes/LighthouseBlue/Makefile
? themes/LighthouseBlue/Makefile.in
? themes/LighthouseBlue/gtk-2.0/Makefile
? themes/LighthouseBlue/gtk-2.0/Makefile.in
? themes/Metal/Makefile
? themes/Metal/Makefile.in
? themes/Metal/gtk-2.0/Makefile
? themes/Metal/gtk-2.0/Makefile.in
? themes/Mist/Makefile
? themes/Mist/Makefile.in
? themes/Mist/gtk-2.0/Makefile
? themes/Mist/gtk-2.0/Makefile.in
? themes/Redmond/Makefile
? themes/Redmond/Makefile.in
? themes/Redmond/gtk/Makefile
? themes/Redmond/gtk/Makefile.in
? themes/Redmond/gtk-2.0/Makefile
? themes/Redmond/gtk-2.0/Makefile.in
? themes/ThinIce/Makefile
? themes/ThinIce/Makefile.in
? themes/ThinIce/gtk-2.0/Makefile
? themes/ThinIce/gtk-2.0/Makefile.in
Index: ChangeLog
===================================================================
RCS file: /cvs/gnome/gtk-engines/ChangeLog,v
retrieving revision 1.141
diff -u -r1.141 ChangeLog
--- ChangeLog	3 Jan 2006 14:55:31 -0000	1.141
+++ ChangeLog	3 Jan 2006 20:29:37 -0000
@@ -1,5 +1,17 @@
 2006-01-03  Benjamin Berg  <benjamin@sipsolutions.net>
 
+	* engines/clearlooks/src/clearlooks_style.c:
+	(clearlooks_style_copy), (clearlooks_style_class_init):
+	* engines/industrial/src/industrial_style_versioned_code.h:
+	* engines/lighthouseblue/src/lighthouseblue_style.c:
+	(lighthouseblue_style_copy), (lighthouseblue_style_class_init):
+	* engines/metal/src/metal_gtk2_engine.c: (metal_style_copy),
+	(metal_style_class_init):
+	Added functions that copy the styles to all engines that save data
+	in them. (Fixes: #325430)
+
+2006-01-03  Benjamin Berg  <benjamin@sipsolutions.net>
+
 	* engines/hc/src/hc-style.c: (hc_draw_flat_box),
 	(hc_style_class_init):
 	Add a hc_draw_flat_box function, that calls the gtk_paint_box
Index: engines/clearlooks/src/clearlooks_style.c
===================================================================
RCS file: /cvs/gnome/gtk-engines/engines/clearlooks/src/clearlooks_style.c,v
retrieving revision 1.41
diff -u -r1.41 clearlooks_style.c
--- engines/clearlooks/src/clearlooks_style.c	2 Jan 2006 00:37:05 -0000	1.41
+++ engines/clearlooks/src/clearlooks_style.c	3 Jan 2006 20:29:40 -0000
@@ -1272,6 +1272,24 @@
 }
 
 static void
+clearlooks_style_copy (GtkStyle * style, GtkStyle * src)
+{
+	ClearlooksStyle * cl_style = CLEARLOOKS_STYLE (style);
+	ClearlooksStyle * cl_src = CLEARLOOKS_STYLE (src);
+	
+	cl_style->colors              = cl_src->colors;
+	cl_style->progressbarstyle    = cl_src->progressbarstyle;
+	cl_style->menubarstyle        = cl_style->menubarstyle;
+	cl_style->menuitemstyle       = cl_style->menuitemstyle;
+	cl_style->listviewitemstyle   = cl_style->listviewitemstyle;
+	cl_style->scrollbar_color     = cl_style->scrollbar_color;
+	cl_style->has_scrollbar_color = cl_style->has_scrollbar_color;
+	cl_style->animation           = cl_style->animation;
+	
+	parent_class->copy (style, src);
+}
+
+static void
 clearlooks_style_unrealize (GtkStyle * style)
 {
 #ifdef HAVE_ANIMATION
@@ -1315,6 +1333,7 @@
 	
 	parent_class = g_type_class_peek_parent (klass);
 
+	style_class->copy             = clearlooks_style_copy;
 	style_class->unrealize        = clearlooks_style_unrealize;
 	style_class->init_from_rc     = clearlooks_style_init_from_rc;
 	style_class->draw_handle      = draw_handle;
Index: engines/industrial/src/industrial_style_versioned_code.h
===================================================================
RCS file: /cvs/gnome/gtk-engines/engines/industrial/src/industrial_style_versioned_code.h,v
retrieving revision 1.2
diff -u -r1.2 industrial_style_versioned_code.h
--- engines/industrial/src/industrial_style_versioned_code.h	11 Apr 2005 12:07:18 -0000	1.2
+++ engines/industrial/src/industrial_style_versioned_code.h	3 Jan 2006 20:29:40 -0000
@@ -1,5 +1,20 @@
 
 static void
+industrial_style_copy (GtkStyle * style,
+                       GtkStyle * src)
+{
+  IndustrialStyle *industrial_style = INDUSTRIAL_STYLE (style);
+  IndustrialStyle *industrial_src = INDUSTRIAL_STYLE (src);
+  
+  industrial_style->contrast        = industrial_src->contrast;
+  industrial_style->contrast_center = industrial_src->contrast_center;
+  industrial_style->rounded_buttons = industrial_src->rounded_buttons;
+  industrial_style->shading_hash    = NULL;
+  
+  parent_class->copy (style, src);
+}
+
+static void
 industrial_style_init_from_rc (GtkStyle * style,
 			       GtkRcStyle * rc_style)
 {
@@ -51,6 +66,7 @@
   style_class->realize = industrial_style_realize;
   style_class->unrealize = industrial_style_unrealize;
 #endif
+  style_class->copy = industrial_style_copy;
   style_class->init_from_rc = industrial_style_init_from_rc;
 
   /*
Index: engines/lighthouseblue/src/lighthouseblue_style.c
===================================================================
RCS file: /cvs/gnome/gtk-engines/engines/lighthouseblue/src/lighthouseblue_style.c,v
retrieving revision 1.2
diff -u -r1.2 lighthouseblue_style.c
--- engines/lighthouseblue/src/lighthouseblue_style.c	9 Jul 2005 13:09:00 -0000	1.2
+++ engines/lighthouseblue/src/lighthouseblue_style.c	3 Jan 2006 20:29:44 -0000
@@ -1780,6 +1780,20 @@
 	}
 }
 
+static void lighthouseblue_style_copy (GtkStyle *style, GtkStyle *src)
+{
+	LighthouseBlueStyle *lighthouseblue_style = LIGHTHOUSEBLUE_STYLE (style);
+	LighthouseBlueStyle *lighthouseblue_src = LIGHTHOUSEBLUE_STYLE (src);
+	gint i;
+	
+	for (i = 0; i < 8; i++)
+	{
+		lighthouseblue_style->shade[i] = lighthouseblue_src->shade[i];
+	}
+	
+	parent_class->copy (style, src);
+}
+
 static void lighthouseblue_style_realize (GtkStyle *style)
 {
 	LighthouseBlueStyle *lighthouseblue_style = LIGHTHOUSEBLUE_STYLE (style);
@@ -1815,6 +1829,7 @@
 
   parent_class = g_type_class_peek_parent (klass);
 
+  style_class->copy = lighthouseblue_style_copy;
   style_class->realize = lighthouseblue_style_realize;
   style_class->unrealize = lighthouseblue_style_unrealize;
   style_class->init_from_rc = lighthouseblue_style_init_from_rc;
Index: engines/metal/src/metal_gtk2_engine.c
===================================================================
RCS file: /cvs/gnome/gtk-engines/engines/metal/src/metal_gtk2_engine.c,v
retrieving revision 1.1
diff -u -r1.1 metal_gtk2_engine.c
--- engines/metal/src/metal_gtk2_engine.c	14 Dec 2004 20:43:56 -0000	1.1
+++ engines/metal/src/metal_gtk2_engine.c	3 Jan 2006 20:29:48 -0000
@@ -135,6 +135,19 @@
 
   parent_class->unrealize (style);
 }
+
+static void
+metal_style_copy (GtkStyle *style, GtkStyle *src)
+{
+  MetalStyle *metal_style = METAL_STYLE (style);
+  MetalStyle *metal_src = METAL_STYLE (src);
+  
+  metal_style->light_gray = metal_src->light_gray;
+  metal_style->mid_gray = metal_src->mid_gray;
+  metal_style->dark_gray = metal_src->dark_gray;
+  
+  parent_class->copy (style, src);
+}
  
 static void
 metal_style_class_init (MetalStyleClass * klass)
@@ -145,6 +158,7 @@
  
   style_class->realize = metal_style_realize;
   style_class->unrealize = metal_style_unrealize;
+  style_class->copy = metal_style_copy;
   style_class->init_from_rc = metal_style_init_from_rc;
 
   style_class->draw_hline = metal_draw_hline;
