+
+ g_printerr("View height = %d\n", visiblerect.height);
+ g_printerr("End - Pager = %d\n", endpos.y - pagerpos.y);
+
+ /* Wait for a keypress to advance the pager */
+ if(endpos.y > pagerpos.y)
+ g_signal_handler_unblock(textview, pager_handler);
+}
+
+static gboolean
+pager_wait(GtkTextView *textview, GdkEventKey *event, GtkTextBuffer *buffer)
+{
+ GdkRectangle pagerpos, endpos, visiblerect;
+ GtkTextIter pager, end;
+ GtkTextMark *pagermark = gtk_text_buffer_get_mark(buffer, "pager_position");
+ gtk_text_view_scroll_to_mark(textview, pagermark, 0.0, TRUE, 0.0, 0.0);
+
+ while(gtk_events_pending())
+ gtk_main_iteration();
+
+ /* Move the pager to the last visible character in the buffer */
+ gtk_text_view_get_line_at_y(textview, &pager, visiblerect.y, NULL);
+ if(!gtk_text_iter_ends_line(&pager))
+ gtk_text_iter_forward_to_line_end(&pager);
+ gtk_text_buffer_move_mark(buffer, pagermark, &pager);
+
+ gtk_text_buffer_get_end_iter(buffer, &end);