Reverts ad48f4d52bbac6139dd829fcc421ad16441f34d2
Add back the feature but only with Alt
See GNOME #630226 and #145244

Index: gtk+-3.0.10/gtk/gtknotebook.c
===================================================================
--- gtk+-3.0.10.orig/gtk/gtknotebook.c	2011-06-04 20:43:14.790926584 +0200
+++ gtk+-3.0.10/gtk/gtknotebook.c	2011-06-04 20:56:04.230688193 +0200
@@ -338,6 +338,8 @@ static void gtk_notebook_size_allocate
                                               GtkAllocation    *allocation);
 static gint gtk_notebook_draw                (GtkWidget        *widget,
                                               cairo_t          *cr);
+static gboolean gtk_notebook_scroll          (GtkWidget        *widget,
+                                              GdkEventScroll   *event);
 static gint gtk_notebook_button_press        (GtkWidget        *widget,
                                               GdkEventButton   *event);
 static gint gtk_notebook_button_release      (GtkWidget        *widget,
@@ -639,6 +641,7 @@ gtk_notebook_class_init (GtkNotebookClas
   widget_class->get_preferred_height = gtk_notebook_get_preferred_height;
   widget_class->size_allocate = gtk_notebook_size_allocate;
   widget_class->draw = gtk_notebook_draw;
+  widget_class->scroll_event = gtk_notebook_scroll;
   widget_class->button_press_event = gtk_notebook_button_press;
   widget_class->button_release_event = gtk_notebook_button_release;
   widget_class->popup_menu = gtk_notebook_popup_menu;
@@ -1857,7 +1860,8 @@ gtk_notebook_realize (GtkWidget *widget)
   attributes.event_mask = gtk_widget_get_events (widget);
   attributes.event_mask |= (GDK_BUTTON_PRESS_MASK |
                             GDK_BUTTON_RELEASE_MASK | GDK_KEY_PRESS_MASK |
-                            GDK_POINTER_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK);
+                            GDK_POINTER_MOTION_MASK | GDK_LEAVE_NOTIFY_MASK |
+                            GDK_SCROLL_MASK);
   attributes_mask = GDK_WA_X | GDK_WA_Y;
 
   priv->event_window = gdk_window_new (gtk_widget_get_parent_window (widget),
@@ -2712,6 +2716,53 @@ get_widget_coordinates (GtkWidget *widge
     return FALSE;
 }
 
+static gboolean
+gtk_notebook_scroll (GtkWidget      *widget,
+                     GdkEventScroll *event)
+{
+  GtkNotebook *notebook = GTK_NOTEBOOK (widget);
+  GtkNotebookPrivate *priv = notebook->priv;
+  GtkWidget *child, *event_widget;
+  gint i;
+
+  if (!priv->cur_page)
+    return FALSE;
+
+  /* only actually scroll when Mod1 is pressed */
+  if (!(event->state & GDK_MOD1_MASK))
+    return FALSE;
+
+  child = priv->cur_page->child;
+  event_widget = gtk_get_event_widget ((GdkEvent *)event);
+
+  /* ignore scroll events from the content of the page */
+  if (!event_widget || gtk_widget_is_ancestor (event_widget, child) || event_widget == child)
+    return FALSE;
+
+  /* nor from the action area */
+  for (i = 0; i < 2; i++)
+    {
+      if (event_widget == priv->action_widget[i] ||
+          (priv->action_widget[i] &&
+           gtk_widget_is_ancestor (event_widget, priv->action_widget[i])))
+        return FALSE;
+    }
+
+  switch (event->direction)
+    {
+    case GDK_SCROLL_RIGHT:
+    case GDK_SCROLL_DOWN:
+      gtk_notebook_next_page (notebook);
+      break;
+    case GDK_SCROLL_LEFT:
+    case GDK_SCROLL_UP:
+      gtk_notebook_prev_page (notebook);
+      break;
+    }
+
+  return TRUE;
+}
+
 static GList*
 get_tab_at_pos (GtkNotebook *notebook, gint x, gint y)
 {
