[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