[Xfce4-commits] <ristretto:master> Store the desired scale with the transaction-object.

Stephan Arts noreply at xfce.org
Sun Oct 2 13:02:01 CEST 2011


Updating branch refs/heads/master
         to 37edc7543999692767bc51e3eb180dcfaf018fc7 (commit)
       from 1f68a55de010a55ba9088895ad0d210c6c822444 (commit)

commit 37edc7543999692767bc51e3eb180dcfaf018fc7
Author: Stephan Arts <stephan at xfce.org>
Date:   Sun Oct 2 12:59:52 2011 +0200

    Store the desired scale with the transaction-object.
    
    Sometimes, the scale of the previous-image persists when a new image
    is loaded. Fix that.

 src/image_viewer.c |   26 ++++++++++++++++----------
 1 files changed, 16 insertions(+), 10 deletions(-)

diff --git a/src/image_viewer.c b/src/image_viewer.c
index 1a75f79..86d2a60 100644
--- a/src/image_viewer.c
+++ b/src/image_viewer.c
@@ -108,6 +108,7 @@ struct _RsttoImageViewerTransaction
     gint              image_width;
     gint              image_height;
     gdouble           image_scale;
+    gdouble           scale;
 
     /* File I/O data */
     /*****************/
@@ -186,7 +187,10 @@ static void
 cb_rstto_image_viewer_zoom_direction_changed (GObject *settings, GParamSpec *pspec, gpointer user_data);
 
 static void
-rstto_image_viewer_load_image (RsttoImageViewer *viewer, GFile *file);
+rstto_image_viewer_load_image (
+        RsttoImageViewer *viewer,
+        GFile *file,
+        gdouble scale);
 static void
 rstto_image_viewer_transaction_free (RsttoImageViewerTransaction *tr);
 
@@ -905,16 +909,16 @@ rstto_image_viewer_set_file (RsttoImageViewer *viewer,
 
                 g_object_unref (viewer->priv->file);
                 viewer->priv->file = g_file_dup(file);
-                viewer->priv->scale = scale;
-                rstto_image_viewer_load_image (viewer, viewer->priv->file);
+                rstto_image_viewer_load_image (
+                        viewer,
+                        viewer->priv->file,
+                        scale);
             }
         }
         else
         {
             viewer->priv->file = g_file_dup(file);
-            viewer->priv->scale = scale;
-            rstto_image_viewer_load_image (viewer, viewer->priv->file);
-        }
+            rstto_image_viewer_load_image (viewer, viewer->priv->file, scale); }
     } 
     else
     {
@@ -951,7 +955,10 @@ rstto_image_viewer_set_file (RsttoImageViewer *viewer,
 }
 
 static void
-rstto_image_viewer_load_image (RsttoImageViewer *viewer, GFile *file)
+rstto_image_viewer_load_image (
+        RsttoImageViewer *viewer,
+        GFile *file,
+        gdouble scale)
 {
     /*
      * This will first need to return to the 'main' loop before it cleans up after itself.
@@ -970,6 +977,7 @@ rstto_image_viewer_load_image (RsttoImageViewer *viewer, GFile *file)
     transaction->buffer = g_new0 (guchar, RSTTO_IMAGE_VIEWER_BUFFER_SIZE);
     transaction->file = file;
     transaction->viewer = viewer;
+    transaction->scale = scale;
 
     g_signal_connect(transaction->loader, "area-prepared", G_CALLBACK(cb_rstto_image_loader_area_prepared), transaction);
     g_signal_connect(transaction->loader, "size-prepared", G_CALLBACK(cb_rstto_image_loader_size_prepared), transaction);
@@ -1153,8 +1161,6 @@ rstto_image_viewer_set_scale (RsttoImageViewer *viewer, gdouble scale)
 
     viewer->priv->scale = scale;
 
-
-
     rstto_image_viewer_queued_repaint (viewer, TRUE);
 }
 
@@ -1373,6 +1379,7 @@ cb_rstto_image_loader_closed (GdkPixbufLoader *loader, RsttoImageViewerTransacti
     if (viewer->priv->transaction == transaction)
     {
         
+        viewer->priv->scale = transaction->scale;
         viewer->priv->image_scale = transaction->image_scale;
         viewer->priv->image_width = transaction->image_width;
         viewer->priv->image_height = transaction->image_height;
@@ -1541,7 +1548,6 @@ cb_rstto_image_viewer_queued_repaint (RsttoImageViewer *viewer)
             }
         }
 
-
         relative_scale = viewer->priv->scale / viewer->priv->image_scale;
 
         /*


More information about the Xfce4-commits mailing list