}
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;
set_up_page(gs);
gs->changed = TRUE;
}
-
+
+ gs->scaling = TRUE;
ps_document_goto_page(gs, gs->current_page);
}
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);
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
g_return_val_if_fail (ps != NULL, -1);
- return ps->current_page;
+ return ps->current_page + 1;
}
static gboolean
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;