Index: kdeui/paged/kpageview_p.h
===================================================================
--- kdeui/paged/kpageview_p.h	(révision 750399)
+++ kdeui/paged/kpageview_p.h	(copie de travail)
@@ -29,6 +29,7 @@
 #include <QtGui/QStackedWidget>
 #include <QAbstractProxyModel>
 #include <QListView>
+#include <QScrollArea>
 #include <QTabBar>
 #include <QTreeView>
 #include <ktitlewidget.h>
@@ -90,6 +91,8 @@
 
     private:
         void init();
+        typedef QMap<QWidget*, QScrollArea*> ScrollAreaMap;
+        ScrollAreaMap scrollAreaForWidget;
 };
 
 namespace KDEPrivate {
Index: kdeui/paged/kpageview.cpp
===================================================================
--- kdeui/paged/kpageview.cpp	(révision 750399)
+++ kdeui/paged/kpageview.cpp	(copie de travail)
@@ -204,11 +204,19 @@
 
   QWidget *widget = qvariant_cast<QWidget*>( model->data( index, KPageModel::WidgetRole ) );
   if ( widget ) {
-    if ( stack->indexOf( widget ) == -1 ) { // not included yet
-      stack->addWidget( widget );
+    ScrollAreaMap::ConstIterator it = scrollAreaForWidget.find( widget );
+    QScrollArea* scrollArea;
+    if ( it == scrollAreaForWidget.end() ) { // not included yet
+      scrollArea = new QScrollArea;
+      scrollArea->setWidget( widget );
+      scrollArea->setWidgetResizable( true );
+      scrollArea->setFrameStyle( QFrame::NoFrame );
+      scrollAreaForWidget[ widget ] = scrollArea;
+      stack->addWidget( scrollArea );
+    } else {
+      scrollArea = it.value();
     }
-
-    stack->setCurrentWidget( widget );
+    stack->setCurrentWidget( scrollArea );
   } else {
     stack->setCurrentWidget( defaultWidget );
   }

