]> www.fi.muni.cz Git - evince.git/commitdiff
Fix a few bugs
authorMarco Pesenti Gritti <marco@gnome.org>
Wed, 22 Dec 2004 20:21:59 +0000 (20:21 +0000)
committerMarco Pesenti Gritti <marco@src.gnome.org>
Wed, 22 Dec 2004 20:21:59 +0000 (20:21 +0000)
2004-12-22  Marco Pesenti Gritti  <marco@gnome.org>

        * ps/gtkgs.c: (gtk_gs_init), (set_up_page),
        (ps_document_set_target), (ps_document_get_page_size),
        (ps_document_render):
        * ps/gtkgs.h:

        Fix a few bugs

ChangeLog
ps/gtkgs.c
ps/gtkgs.h

index a19f3acfe79fbf0c7e489d8fa22c3a1cb576cf52..fd3264709ba75378a19be1f937a4164c4c5bcf7c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2004-12-22  Marco Pesenti Gritti  <marco@gnome.org>
+
+       * ps/gtkgs.c: (gtk_gs_init), (set_up_page),
+       (ps_document_set_target), (ps_document_get_page_size),
+       (ps_document_render):
+       * ps/gtkgs.h:
+
+       Fix a few bugs
+
 2004-12-22  Christian Rose  <menthos@menthos.com>
 
        * configure.ac: Added "sv" to ALL_LINGUAS.
index 3c8ce193fa49d006459d34b2a17c5c0b72aff269..4c895b95c01d2b9b9b65c29f6be90a0539bc80c3 100644 (file)
@@ -269,7 +269,6 @@ static void
 gtk_gs_init(GtkGS * gs)
 {
   gs->bpixmap = NULL;
-  gs->use_bpixmap = TRUE;
 
   gs->current_page = -2;
   gs->disable_start = FALSE;
@@ -504,6 +503,9 @@ set_up_page(GtkGS * gs)
   char *savelocale;
 #endif
 
+  if (gs->pstarget == NULL)
+    return;
+
   /* Do we have to check if the actual geometry changed? */
 
   stop_interpreter(gs);
@@ -516,11 +518,9 @@ set_up_page(GtkGS * gs)
     /* clear new pixmap (set to white) */
     fill = gdk_gc_new(gs->pstarget);
     if(fill) {
-      //colormap = gtk_widget_get_colormap(GTK_WIDGET(gs));
-      //gdk_color_alloc(colormap, &white);
       gdk_gc_set_foreground(fill, &white);
 
-      if(gs->use_bpixmap && gs->width > 0 && gs->height > 0) {
+      if(gs->width > 0 && gs->height > 0) {
         if(gs->bpixmap) {
           gdk_drawable_unref(gs->bpixmap);
           gs->bpixmap = NULL;
@@ -2093,7 +2093,10 @@ static void
 ps_document_set_target (EvDocument  *document,
                         GdkDrawable *target)
 {
-       GTK_GS (document)->pstarget = target;
+       GtkGS *gs = GTK_GS (document);
+
+       gs->pstarget = target;
+       gtk_gs_goto_page (gs, gs->current_page);
 }
 
 static void
@@ -2115,6 +2118,15 @@ ps_document_get_page_size (EvDocument   *document,
                            int          *width,
                            int          *height)
 {
+       GtkGS *gs = GTK_GS (document);
+
+       if (width) {
+               *width = gs->width;
+       }
+
+       if (height) {
+               *height = gs->height;
+       }
 }
 
 static void
@@ -2127,6 +2139,11 @@ ps_document_render (EvDocument  *document,
        GtkGS *gs = GTK_GS (document);
        GdkGC *gc;
 
+       if (gs->pstarget == NULL ||
+           gs->bpixmap == NULL) {
+               return;
+       }
+
        gc = gdk_gc_new (gs->pstarget);
 
        gdk_draw_drawable (gs->pstarget, gc,
index 3ca37017a023ea18623a197e729de4615532c519..763c09c54a5d5bc08d6eb161f1be861bdb97f116 100644 (file)
@@ -70,7 +70,6 @@ struct _GtkGS {
   GtkGSZoomMode zoom_mode;
 
   GdkPixmap *bpixmap;           /* Backing pixmap */
-  int use_bpixmap;
 
   long message_window;          /* Used by ghostview to receive messages from app */
 
@@ -170,7 +169,6 @@ gboolean gtk_gs_load(GtkGS * gs, const gchar * fname);
 void gtk_gs_reload(GtkGS * gs);
 
 /* control functions */
-void gtk_gs_center_page(GtkGS * gs);
 gboolean gtk_gs_next_page(GtkGS * gs);
 gboolean gtk_gs_prev_page(GtkGS * gs);
 gboolean gtk_gs_goto_page(GtkGS * gs, gint);