Index: src/picture_viewer.c =================================================================== --- src/picture_viewer.c (revision 3008) +++ src/picture_viewer.c (working copy) @@ -471,6 +471,11 @@ viewer->hadjustment->lower = 0; viewer->hadjustment->step_increment = 1; viewer->hadjustment->page_increment = 100; + if((viewer->hadjustment->value + viewer->hadjustment->page_size) > viewer->hadjustment->upper) + { + viewer->hadjustment->value = viewer->hadjustment->upper - viewer->hadjustment->page_size; + gtk_adjustment_value_changed(viewer->hadjustment); + } } if(viewer->vadjustment) { @@ -479,30 +484,27 @@ viewer->vadjustment->lower = 0; viewer->vadjustment->step_increment = 1; viewer->vadjustment->page_increment = 100; + if((viewer->vadjustment->value + viewer->vadjustment->page_size) > viewer->vadjustment->upper) + { + viewer->vadjustment->value = viewer->vadjustment->upper - viewer->vadjustment->page_size; + gtk_adjustment_value_changed(viewer->vadjustment); + } } - if((viewer->vadjustment->value + viewer->vadjustment->page_size) > viewer->vadjustment->upper) - { - viewer->vadjustment->value = viewer->vadjustment->upper - viewer->vadjustment->page_size; - gtk_adjustment_value_changed(viewer->vadjustment); - } - if((viewer->hadjustment->value + viewer->hadjustment->page_size) > viewer->hadjustment->upper) - { - viewer->hadjustment->value = viewer->hadjustment->upper - viewer->hadjustment->page_size; - gtk_adjustment_value_changed(viewer->hadjustment); - } - GdkPixbuf *tmp_pixbuf = NULL; - tmp_pixbuf = gdk_pixbuf_new_subpixbuf(viewer->priv->src_pixbuf, - viewer->hadjustment->value / viewer->priv->scale >= 0? + if (viewer->vadjustment && viewer->hadjustment) + { + tmp_pixbuf = gdk_pixbuf_new_subpixbuf(viewer->priv->src_pixbuf, + viewer->hadjustment->value / viewer->priv->scale >= 0? viewer->hadjustment->value / viewer->priv->scale : 0, - viewer->vadjustment->value / viewer->priv->scale >= 0? + viewer->vadjustment->value / viewer->priv->scale >= 0? viewer->vadjustment->value / viewer->priv->scale : 0, - ((widget->allocation.width/viewer->priv->scale)) < width? + ((widget->allocation.width/viewer->priv->scale)) < width? widget->allocation.width/viewer->priv->scale:width, - ((widget->allocation.height/viewer->priv->scale))< height? + ((widget->allocation.height/viewer->priv->scale))< height? widget->allocation.height/viewer->priv->scale:height); + } if(viewer->priv->dst_pixbuf) { @@ -516,9 +518,11 @@ g_object_unref(tmp_pixbuf); tmp_pixbuf = NULL; } - - gtk_adjustment_changed(viewer->hadjustment); - gtk_adjustment_changed(viewer->vadjustment); + if (viewer->vadjustment && viewer->hadjustment) + { + gtk_adjustment_changed(viewer->hadjustment); + gtk_adjustment_changed(viewer->vadjustment); + } } }