Index: gtknotebook.c
===================================================================
--- gtknotebook.c	(revision 17233)
+++ gtknotebook.c	(working copy)
@@ -780,7 +780,23 @@ gtk_notebook_class_init (GtkNotebookClas
                                                              G_MAXINT,
                                                              0,
                                                              GTK_PARAM_READABLE));
-
+  /**
+   * GtkNotebook:tabs-alignment:
+   *
+   * The "tabs-alignment" property defines the tabs alignment inside
+   * the available area. 0.0 is aligned to the left/right (depending
+   * on packing) and 1.0 is centered.
+   *
+   * Since: 2.12
+   */
+  gtk_widget_class_install_style_property (widget_class,
+                                           g_param_spec_float ("tabs-alignment",
+							       _("Tabs alignment"),
+							       _("Tabs alignment inside the available area"),
+							       0.,
+							       1.,
+							       0.,
+							       GTK_PARAM_READABLE));
   notebook_signals[SWITCH_PAGE] =
     g_signal_new (I_("switch_page"),
 		  G_TYPE_FROM_CLASS (gobject_class),
@@ -4714,6 +4730,8 @@ gtk_notebook_tab_space (GtkNotebook *not
   gint arrow_spacing;
   gint scroll_arrow_hlength;
   gint scroll_arrow_vlength;
+  gfloat tabs_alignment;
+  gint remaining_space, padding;
 
   widget = GTK_WIDGET (notebook);
   priv = GTK_NOTEBOOK_GET_PRIVATE (notebook);
@@ -4723,6 +4741,8 @@ gtk_notebook_tab_space (GtkNotebook *not
                         "arrow-spacing", &arrow_spacing,
                         "scroll-arrow-hlength", &scroll_arrow_hlength,
                         "scroll-arrow-vlength", &scroll_arrow_vlength,
+			"tabs-alignment", &tabs_alignment,
+			"tab-overlap", &tab_overlap,
                         NULL);
 
   switch (tab_pos)
@@ -4767,8 +4787,6 @@ gtk_notebook_tab_space (GtkNotebook *not
     *show_arrows = FALSE;
   else
     {
-      gtk_widget_style_get (widget, "tab-overlap", &tab_overlap, NULL);
-
       switch (tab_pos)
 	{
 	case GTK_POS_TOP:
@@ -4831,6 +4849,15 @@ gtk_notebook_tab_space (GtkNotebook *not
 	  break;
 	}
     }
+
+  if (!*show_arrows)
+    {
+      remaining_space = *max - *min - tab_overlap - *tab_space;
+      padding = (remaining_space / 2) * tabs_alignment;
+
+      *min += padding;
+      *max -= padding;
+    }
 }
 
 static void
