Index: src/bacon-volume.c
===================================================================
RCS file: /cvs/gnome/totem/src/bacon-volume.c,v
retrieving revision 1.17
diff -p -u -B -r1.17 bacon-volume.c
--- src/bacon-volume.c	3 Nov 2006 16:57:35 -0000	1.17
+++ src/bacon-volume.c	3 Nov 2006 18:30:46 -0000
@@ -48,8 +48,6 @@ static gboolean	bacon_volume_button_pres
 						 GdkEventButton * event);
 static gboolean bacon_volume_key_release	(GtkWidget      * widget,
     						 GdkEventKey    * event);
-static void bacon_volume_button_style_set	(GtkWidget *widget,
-						 GtkStyle *previous_style);
 static gboolean cb_dock_button_press		(GtkWidget      * widget,
 						 GdkEventButton * event,
 						 gpointer         data);
@@ -75,8 +73,8 @@ static GtkWidget *bacon_volume_scale_new
 						 float min, float max,
 						 float step);
 
-static GtkButtonClass *parent_class = NULL;
-static guint signals[NUM_SIGNALS] = { 0 };
+static GtkButtonClass *parent_class;
+static guint signals[NUM_SIGNALS];
 
 GType
 bacon_volume_button_get_type (void)
@@ -119,7 +117,6 @@ bacon_volume_button_class_init (BaconVol
   gtkwidget_class->button_press_event = bacon_volume_button_press;
   gtkwidget_class->key_release_event = bacon_volume_key_release;
   gtkwidget_class->scroll_event = bacon_volume_button_scroll;
-  gtkwidget_class->style_set = bacon_volume_button_style_set;
 
   /* signals */
   signals[SIGNAL_VALUE_CHANGED] = g_signal_new ("value-changed",
@@ -140,7 +137,6 @@ static void
 bacon_volume_button_dispose (GObject *object)
 {
   BaconVolumeButton *button = BACON_VOLUME_BUTTON (object);
-  guint i;
 
   if (button->dock) {
     gtk_widget_destroy (button->dock);
@@ -151,12 +147,6 @@ bacon_volume_button_dispose (GObject *ob
     g_source_remove (button->click_id);
     button->click_id = 0;
   }
-  for (i = 0; i < 4; i++) {
-    if (button->icon[i] != NULL) {
-      g_object_unref (button->icon[i]);
-      button->icon[i] = NULL;
-    }
-  }
 
   G_OBJECT_CLASS (parent_class)->dispose (object);
 }
@@ -231,7 +221,7 @@ bacon_volume_button_new (GtkIconSize siz
 		    G_CALLBACK (cb_button_release), button);
   gtk_box_pack_start (GTK_BOX (box), button->min, TRUE, FALSE, 0);
 
-  /* set button text */
+  /* initially set icon */
   bacon_volume_button_update_icon (button);
 
   return GTK_WIDGET (button);
@@ -258,15 +248,6 @@ bacon_volume_button_set_value (BaconVolu
  * button callbacks.
  */
 
-static void
-bacon_volume_button_style_set (GtkWidget *widget,
-			       GtkStyle *previous_style)
-{
-  GTK_WIDGET_CLASS (parent_class)->style_set (widget, previous_style);
-
-  bacon_volume_button_load_icons (widget);
-}
-
 static gboolean
 bacon_volume_button_scroll (GtkWidget      * widget,
 			    GdkEventScroll * event)
@@ -726,25 +707,34 @@ bacon_volume_scale_release (GtkWidget   
 static void
 bacon_volume_button_update_icon (BaconVolumeButton *button)
 {
+  static const char *icon_name[] = {
+    "audio-volume-muted",
+    "audio-volume-low",
+    "audio-volume-medium",
+    "audio-volume-high"
+  };
   GtkRange *range = GTK_RANGE (button->scale);
   float val = gtk_range_get_value (range);
   GtkAdjustment *adj;
   GdkPixbuf *pixbuf;
   float step;
+  guint icon;
 
   adj = gtk_range_get_adjustment (range);
   step = (adj->upper - adj->lower) / 4;
 
   if (val == adj->lower)
-    pixbuf = button->icon[0];
+    icon = 0;
   else if (val > adj->lower && val <= adj->lower + step)
-    pixbuf = button->icon[1];
+    icon = 1;
   else if (val > adj->lower + step && val <= adj->lower + step * 2)
-    pixbuf = button->icon[2];
+    icon = 2;
   else
-    pixbuf = button->icon[3];
+    icon = 3;
 
-  gtk_image_set_from_pixbuf (GTK_IMAGE (button->image), pixbuf);
+  gtk_image_set_from_icon_name (GTK_IMAGE (button->image),
+			        icon_name[icon],
+			        button->size);
 }
 
 static void
@@ -757,39 +747,6 @@ bacon_volume_scale_value_changed (GtkRan
 
   /* signal */
   g_signal_emit (button, signals[SIGNAL_VALUE_CHANGED], 0);
-}
- 
-static void
-bacon_volume_button_load_icons (GtkWidget *widget)
-{
-  BaconVolumeButton *button = BACON_VOLUME_BUTTON (widget);
-  guint i;
-  gint w, h;
-  GdkScreen *screen;
-  GtkIconTheme *theme;
-  const char *icon_name[] = {"audio-volume-muted", "audio-volume-low",
-    "audio-volume-medium", "audio-volume-high"};
-
-  screen = gtk_widget_get_screen (widget);
-  theme = gtk_icon_theme_get_for_screen (screen);
-
-  gtk_icon_size_lookup (button->size, &w, &h);
-
-  for (i = 0; i < 4; i++) {
-    GError *error = NULL;
-    if (button->icon[i] != NULL) {
-      g_object_unref (button->icon[i]);
-      button->icon[i] = NULL;
-    }
-    button->icon[i] = gtk_icon_theme_load_icon (theme, icon_name[i], w, 0, &error);
-    if (error) {
-      g_print ("Couldn't load themed icon '%s': %s\n", icon_name[i], error->message);
-      g_error_free (error);
-    }
-  }
-
-  /* Apply the new icons */
-  bacon_volume_button_update_icon (button);
 }
 
 /*
Index: src/bacon-volume.h
===================================================================
RCS file: /cvs/gnome/totem/src/bacon-volume.h,v
retrieving revision 1.6
diff -p -u -B -r1.6 bacon-volume.h
--- src/bacon-volume.h	3 Nov 2006 16:57:35 -0000	1.6
+++ src/bacon-volume.h	3 Nov 2006 18:30:46 -0000
@@ -41,7 +41,6 @@ typedef struct _BaconVolumeButton {
   gint click_id;
   float direction;
   guint32 pop_time;
-  GdkPixbuf *icon[4];
   guint timeout : 1;
 } BaconVolumeButton;
 
Index: src/totem-playlist.c
===================================================================
RCS file: /cvs/gnome/totem/src/totem-playlist.c,v
retrieving revision 1.107
diff -p -u -B -r1.107 totem-playlist.c
--- src/totem-playlist.c	3 Nov 2006 16:49:16 -0000	1.107
+++ src/totem-playlist.c	3 Nov 2006 18:30:47 -0000
@@ -67,9 +67,6 @@ struct TotemPlaylistPrivate
 	GtkTreeSelection *selection;
 	TotemPlParser *parser;
 
-	/* This is the playing icon */
-	GdkPixbuf *icon;
-
 	GtkActionGroup *action_group;
 	GtkUIManager *ui_manager;
 
@@ -688,34 +685,6 @@ selection_changed (GtkTreeSelection *tre
 	gtk_widget_set_sensitive (down_button, sensitivity);
 }
 
-static void
-totem_playlist_style_set (GtkWidget *widget,
-			  GtkStyle *previous_style)
-{
-	TotemPlaylist *playlist = TOTEM_PLAYLIST (widget);
-	TotemPlaylistPrivate *priv = playlist->_priv;
-	gint w, h;
-	GError *error = NULL;
-	GtkIconTheme *theme;
-	const char icon_name[] = "audio-volume-medium";
-
-	GTK_WIDGET_CLASS (totem_playlist_parent_class)->style_set (widget, previous_style);
-
-	if (priv->icon != NULL) {
-		g_object_unref (priv->icon);
-	}
-
-	gtk_icon_size_lookup_for_settings (gtk_widget_get_settings (widget),
-					   GTK_ICON_SIZE_MENU, &w, &h);
-
-	theme = gtk_icon_theme_get_for_screen (gtk_widget_get_screen (widget));
-	priv->icon = gtk_icon_theme_load_icon (theme, icon_name, w, 0, &error);
-	if (error) {
-		g_print ("Couldn't load themed icon '%s': %s\n", icon_name, error->message);
-		g_error_free (error);
-	}
-}
-
 /* This function checks if the current item is NULL, and try to update it
  * as the first item of the playlist if so. It returns TRUE if there is a
  * current item */
@@ -1191,15 +1160,8 @@ set_playing_icon (GtkTreeViewColumn *col
 
 	gtk_tree_model_get (model, iter, PLAYING_COL, &playing, -1);
 
-	if (playing) {
-		g_object_set (G_OBJECT (renderer),
-				"pixbuf", playlist->_priv->icon,
-				NULL);
-	} else {
-		g_object_set (G_OBJECT (renderer),
-				"pixbuf", NULL,
-				NULL);
-	}
+	g_object_set (renderer, "icon-name",
+		      playing ? "audio-volume-medium" : NULL, NULL);
 }
 
 static void
@@ -1214,6 +1176,7 @@ init_columns (GtkTreeView *treeview, Tot
 	gtk_tree_view_column_pack_start (column, renderer, FALSE);
 	gtk_tree_view_column_set_cell_data_func (column, renderer,
 			(GtkTreeCellDataFunc) set_playing_icon, playlist, NULL);
+	g_object_set (renderer, "stock-size", GTK_ICON_SIZE_MENU, NULL);
 	gtk_tree_view_append_column (treeview, column);
 
 	/* Labels */
@@ -1503,14 +1466,8 @@ totem_playlist_finalize (GObject *object
 {
 	TotemPlaylist *playlist = TOTEM_PLAYLIST (object);
 
-	g_return_if_fail (object != NULL);
-
 	if (playlist->_priv->current != NULL)
 		gtk_tree_path_free (playlist->_priv->current);
-	if (playlist->_priv->icon != NULL) {
-		g_object_unref (playlist->_priv->icon);
-		playlist->_priv->icon = NULL;
-	}
 	g_object_unref (playlist->_priv->parser);
 
 	if (playlist->_priv->ui_manager != NULL) {
@@ -2246,11 +2203,8 @@ static void
 totem_playlist_class_init (TotemPlaylistClass *klass)
 {
 	GObjectClass *object_class = G_OBJECT_CLASS (klass);
-	GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
 
 	object_class->finalize = totem_playlist_finalize;
-
-	widget_class->style_set = totem_playlist_style_set;
 
 	/* Signals */
 	totem_playlist_table_signals[CHANGED] =
