X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=ps%2Fps-document.c;h=dea5ddf5ac63743d73ed851efc64bd26fdb1a05c;hb=6f7b6348dbaac85f6694242a08dd1374e16d317f;hp=1f29c761fc4de926e0cb1e580ddd9ad848046323;hpb=d58aed1bd1e82193bab4c9156198804d556dca82;p=evince.git diff --git a/ps/ps-document.c b/ps/ps-document.c index 1f29c761..dea5ddf5 100644 --- a/ps/ps-document.c +++ b/ps/ps-document.c @@ -325,12 +325,12 @@ ps_document_get_property (GObject *object, } static void -ps_document_class_init(PSDocumentClass * klass) +ps_document_class_init(PSDocumentClass *klass) { GObjectClass *object_class; object_class = (GObjectClass *) klass; - parent_class = gtk_type_class(gtk_widget_get_type()); + parent_class = g_type_class_peek_parent (klass); gs_class = klass; object_class->finalize = ps_document_finalize; @@ -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); } @@ -1695,6 +1696,12 @@ ps_document_load (EvDocument *document, return FALSE; result = document_load (PS_DOCUMENT (document), filename); + if (!result) { + g_set_error (error, G_FILE_ERROR, + G_FILE_ERROR_FAILED, + "Failed to load document '%s'\n", + uri); + } g_free (filename); @@ -1728,7 +1735,7 @@ static void ps_document_set_page (EvDocument *document, int page) { - ps_document_goto_page (PS_DOCUMENT (document), page); + ps_document_goto_page (PS_DOCUMENT (document), page - 1); } static int @@ -1738,7 +1745,7 @@ ps_document_get_page (EvDocument *document) g_return_val_if_fail (ps != NULL, -1); - return ps->current_page; + return ps->current_page + 1; } static gboolean @@ -1754,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;