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 /ps/ps-document.c | |
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 'ps/ps-document.c')
-rw-r--r-- | ps/ps-document.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/ps/ps-document.c b/ps/ps-document.c index 1df82e2..dea5ddf 100644 --- a/ps/ps-document.c +++ b/ps/ps-document.c @@ -1678,7 +1678,8 @@ ps_document_set_zoom(PSDocument * gs, gfloat zoom) set_up_page(gs); gs->changed = TRUE; } - + + gs->scaling = TRUE; ps_document_goto_page(gs, gs->current_page); } @@ -1760,7 +1761,13 @@ ps_document_widget_event (GtkWidget *widget, GdkEvent *event, gpointer data) if (event->client.message_type == gs_class->page_atom) { LOG ("GS rendered the document"); gs->busy = FALSE; - ev_document_changed (EV_DOCUMENT (gs)); + + if (gs->scaling) { + ev_document_scale_changed (EV_DOCUMENT (gs)); + gs->scaling = FALSE; + } else { + ev_document_page_changed (EV_DOCUMENT (gs)); + } } return TRUE; |