diff options
author | Marco Pesenti Gritti <marco@gnome.org> | 2005-02-24 12:47:27 (GMT) |
---|---|---|
committer | Marco Pesenti Gritti <marco@src.gnome.org> | 2005-02-24 12:47:27 (GMT) |
commit | 6d7f9e7cf7678b48828be0722ae2e998ce85b7a7 (patch) | |
tree | 3ac765c1e0b92a5be0ce6a637d8577a0525d3eda /pdf | |
parent | 810d8b0808591ebb17d4913da4d20e489e9b8cde (diff) |
Separate page/scale notifications
2005-02-24 Marco Pesenti Gritti <marco@gnome.org>
* backend/ev-document.c: (ev_document_class_init),
(ev_document_page_changed), (ev_document_scale_changed):
* backend/ev-document.h:
Separate page/scale notifications
* pdf/xpdf/pdf-document.cc:
Emit the new signals.
Do not display the pdf page in _render, do it
when scale/page are requested.
* ps/ps-document.c: (ps_document_set_zoom),
(ps_document_widget_event):
* ps/ps-document.h:
Emit the new signals.
* shell/ev-view.c: (ev_view_size_request), (expose_bin_window),
(ev_view_init), (page_changed_callback), (scale_changed_callback),
(ev_view_set_document), (ev_view_zoom), (ev_view_zoom_in),
(ev_view_zoom_out), (size_to_zoom_factor), (ev_view_set_size):
* shell/ev-view.h:
* shell/ev-window.c: (ev_window_cmd_view_normal_size),
(ev_window_cmd_view_page_width), (size_allocate_cb),
(ev_window_set_sizing_mode):
Rework sizing to be pixel based.
There are bugs but should be already way better.
Diffstat (limited to 'pdf')
-rw-r--r-- | pdf/xpdf/pdf-document.cc | 52 |
1 files changed, 18 insertions, 34 deletions
diff --git a/pdf/xpdf/pdf-document.cc b/pdf/xpdf/pdf-document.cc index edb8122..777e949 100644 --- a/pdf/xpdf/pdf-document.cc +++ b/pdf/xpdf/pdf-document.cc @@ -90,7 +90,6 @@ struct _PdfDocument UnicodeMap *umap; gchar *password; - gboolean page_valid; PdfDocumentSearch *search; }; @@ -136,29 +135,21 @@ document_init_links (PdfDocument *pdf_document) obj.free (); } -static gboolean -document_validate_page (PdfDocument *pdf_document) +static void +document_display_page (PdfDocument *pdf_document) { - if (!pdf_document->page_valid) { - pdf_document->doc->displayPage (pdf_document->out, pdf_document->page, - 72 * pdf_document->scale, - 72 * pdf_document->scale, - 0, gTrue, gTrue); - - document_init_links (pdf_document); + pdf_document->doc->displayPage (pdf_document->out, pdf_document->page, + 72 * pdf_document->scale, + 72 * pdf_document->scale, + 0, gTrue, gTrue); - pdf_document->page_valid = TRUE; - - ev_document_changed (EV_DOCUMENT (pdf_document)); - - /* Update the search results available to the app since - * we only provide full results on the current page - */ - if (pdf_document->search) - pdf_document_search_page_changed (pdf_document->search); - } + document_init_links (pdf_document); - return pdf_document->page_valid; + /* Update the search results available to the app since + * we only provide full results on the current page + */ + if (pdf_document->search) + pdf_document_search_page_changed (pdf_document->search); } static gboolean @@ -227,8 +218,6 @@ pdf_document_load (EvDocument *document, if (pdf_document->out) pdf_document->out->startDoc(pdf_document->doc->getXRef()); - pdf_document->page_valid = FALSE; - g_object_notify (G_OBJECT (pdf_document), "title"); return TRUE; @@ -274,7 +263,8 @@ pdf_document_set_page (EvDocument *document, if (page != pdf_document->page) { pdf_document->page = page; - pdf_document->page_valid = FALSE; + document_display_page (pdf_document); + ev_document_page_changed (EV_DOCUMENT (pdf_document)); } } @@ -321,7 +311,7 @@ pdf_document_set_target (EvDocument *document, } - pdf_document->page_valid = FALSE; + document_display_page (pdf_document); } } @@ -333,7 +323,8 @@ pdf_document_set_scale (EvDocument *document, if (pdf_document->scale != scale) { pdf_document->scale = scale; - pdf_document->page_valid = FALSE; + document_display_page (pdf_document); + ev_document_scale_changed (EV_DOCUMENT (pdf_document)); } } @@ -384,7 +375,7 @@ pdf_document_render (EvDocument *document, GdkRectangle page; GdkRectangle draw; - if (!document_validate_page (pdf_document) || !pdf_document->target) + if (!pdf_document->target) return; page.x = pdf_document->page_x_offset; @@ -486,12 +477,6 @@ pdf_document_search_page_changed (PdfDocumentSearch *search) current_page = pdf_document->page; - if (!pdf_document->page_valid) { - /* we can't do anything until displayPage() */ - search->current_page = -1; - return; - } - if (search->current_page == current_page) return; @@ -1363,7 +1348,6 @@ pdf_document_init (PdfDocument *pdf_document) pdf_document->page_y_offset = 0; pdf_document->scale = 1.; - pdf_document->page_valid = FALSE; pdf_document->password = NULL; } |