diff --git a/gnome-volume-control/src/gvc-level-bar.c b/gnome-volume-control/src/gvc-level-bar.c
index 2d3d9da..5102fe0 100644
--- a/gnome-volume-control/src/gvc-level-bar.c
+++ b/gnome-volume-control/src/gvc-level-bar.c
@@ -435,24 +435,46 @@ gvc_level_bar_constructor (GType                  type,
 }
 
 static void
-gvc_level_bar_size_request (GtkWidget      *widget,
-                            GtkRequisition *requisition)
+gvc_level_bar_get_preferred_width (GtkWidget *widget,
+                                   gint      *minimum,
+                                   gint      *natural)
 {
         GvcLevelBar *bar;
 
         g_return_if_fail (GVC_IS_LEVEL_BAR (widget));
-        g_return_if_fail (requisition != NULL);
 
         bar = GVC_LEVEL_BAR (widget);
 
         switch (bar->priv->orientation) {
         case GTK_ORIENTATION_VERTICAL:
-                requisition->width = VERTICAL_BAR_WIDTH;
-                requisition->height = MIN_VERTICAL_BAR_HEIGHT;
+                *minimum = *natural = VERTICAL_BAR_WIDTH;
                 break;
         case GTK_ORIENTATION_HORIZONTAL:
-                requisition->width = MIN_HORIZONTAL_BAR_WIDTH;
-                requisition->height = HORIZONTAL_BAR_HEIGHT;
+                *minimum = *natural = MIN_HORIZONTAL_BAR_WIDTH;
+                break;
+        default:
+                g_assert_not_reached ();
+                break;
+        }
+}
+
+static void
+gvc_level_bar_get_preferred_height  (GtkWidget *widget,
+                                     gint      *minimum,
+                                     gint      *natural)
+{
+        GvcLevelBar *bar;
+
+        g_return_if_fail (GVC_IS_LEVEL_BAR (widget));
+
+        bar = GVC_LEVEL_BAR (widget);
+
+        switch (bar->priv->orientation) {
+        case GTK_ORIENTATION_VERTICAL:
+                *minimum = *natural = MIN_VERTICAL_BAR_HEIGHT;
+                break;
+        case GTK_ORIENTATION_HORIZONTAL:
+                *minimum = *natural = HORIZONTAL_BAR_HEIGHT;
                 break;
         default:
                 g_assert_not_reached ();
@@ -648,7 +670,8 @@ gvc_level_bar_class_init (GvcLevelBarClass *klass)
         object_class->get_property = gvc_level_bar_get_property;
 
         widget_class->draw = gvc_level_bar_draw;
-        widget_class->size_request = gvc_level_bar_size_request;
+        widget_class->get_preferred_width = gvc_level_bar_get_preferred_width;
+        widget_class->get_preferred_height = gvc_level_bar_get_preferred_height;
         widget_class->size_allocate = gvc_level_bar_size_allocate;
 
         g_object_class_install_property (object_class,
