Don't like ads? PRO users don't see any ads ;-)
Guest

Evince current page

By: a guest on Jun 21st, 2012  |  syntax: C  |  size: 1.88 KB  |  hits: 20  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  1.                 current_area.x = gtk_adjustment_get_value (view->hadjustment);
  2.                 current_area.width = gtk_adjustment_get_page_size (view->hadjustment);
  3.                 current_area.y = gtk_adjustment_get_value (view->vadjustment);
  4.                 current_area.height = gtk_adjustment_get_page_size (view->vadjustment);
  5.  
  6.                 for (i = 0; i < ev_document_get_n_pages (view->document); i++) {
  7.  
  8.                         ev_view_get_page_extents (view, i, &page_area, &border);
  9.  
  10.                         if (gdk_rectangle_intersect (&current_area, &page_area, &unused)) {
  11.                                 area = unused.width * unused.height;
  12.  
  13.                                 if (!found) {
  14.                                         area_max = area;
  15.                                         view->start_page = i;
  16.                                         found = TRUE;
  17.                                         best_current_page = i;
  18.                                 }
  19.                                 if (area > area_max) {
  20.                                         best_current_page = (area == area_max) ? MIN (i, best_current_page) : i;
  21.                                         area_max = area;
  22.                                 }
  23.  
  24.                                 view->end_page = i;
  25.                                 j = 0;
  26.                         } else if (found && view->current_page <= view->end_page) {
  27.                                 if (view->dual_page && j < 1) {
  28.                                         /* In dual mode  we stop searching
  29.                                          * after two consecutive non-visible pages.
  30.                                          */
  31.                                         j++;
  32.                                         continue;
  33.                                 }
  34.                                 break;
  35.                         }
  36.                 }