diff --git a/gtk/gtktreeview.c b/gtk/gtktreeview.c
index 3d81c9d..f56a5d0 100644
--- a/gtk/gtktreeview.c
+++ b/gtk/gtktreeview.c
@@ -9679,6 +9679,21 @@ gtk_tree_view_move_cursor_page_up_down (GtkTreeView *tree_view,
     /* This is sorta weird.  Focus in should give us a cursor */
     return;
 
+  GtkWidget* parent = gtk_widget_get_parent(GTK_WIDGET(tree_view));
+  GtkWidget* needed_resize_parent = NULL;
+  while (parent)
+    {
+      if (GTK_CONTAINER_RESIZE_PENDING(parent))
+          needed_resize_parent = parent;
+      parent = gtk_widget_get_parent(parent);
+    }
+
+  if (needed_resize_parent)
+    {
+        GTK_PRIVATE_UNSET_FLAG (needed_resize_parent, GTK_RESIZE_PENDING);
+        gtk_container_check_resize (GTK_CONTAINER (needed_resize_parent));
+    }
+
   gtk_widget_style_get (GTK_WIDGET (tree_view), "vertical-separator", &vertical_separator, NULL);
   _gtk_tree_view_find_node (tree_view, old_cursor_path,
 			    &cursor_tree, &cursor_node);
