[Goodies-commits] r2938 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Tue Jul 31 02:23:17 CEST 2007
Author: stephan
Date: 2007-07-31 00:23:17 +0000 (Tue, 31 Jul 2007)
New Revision: 2938
Modified:
ristretto/trunk/src/picture_viewer.c
Log:
change zoom behaviour, remembers zoom-to-fit
Modified: ristretto/trunk/src/picture_viewer.c
===================================================================
--- ristretto/trunk/src/picture_viewer.c 2007-07-30 23:47:14 UTC (rev 2937)
+++ ristretto/trunk/src/picture_viewer.c 2007-07-31 00:23:17 UTC (rev 2938)
@@ -377,26 +377,19 @@
rstto_picture_viewer_set_scale(RsttoPictureViewer *viewer, gdouble scale)
{
g_return_if_fail(scale > 0);
+ viewer->scale_fts = FALSE;
viewer->scale = scale;
rstto_picture_viewer_refresh(viewer);
rstto_picture_viewer_paint(GTK_WIDGET(viewer));
+
}
gdouble
rstto_picture_viewer_fit_scale(RsttoPictureViewer *viewer)
{
- g_return_val_if_fail(viewer->src_pixbuf, 0);
+ viewer->scale_fts = TRUE;
- gdouble width = (gdouble)gdk_pixbuf_get_width(viewer->src_pixbuf);
- gdouble height = (gdouble)gdk_pixbuf_get_height(viewer->src_pixbuf);
- gdouble h_scale = GTK_WIDGET(viewer)->allocation.width / width;
- gdouble v_scale = GTK_WIDGET(viewer)->allocation.height / height;
- if(h_scale < v_scale)
- viewer->scale = h_scale;
- else
- viewer->scale = v_scale;
-
rstto_picture_viewer_refresh(viewer);
rstto_picture_viewer_paint(GTK_WIDGET(viewer));
@@ -431,6 +424,18 @@
GtkWidget *widget = GTK_WIDGET(viewer);
if(viewer->src_pixbuf)
{
+
+ if(viewer->scale_fts)
+ {
+ gdouble width = (gdouble)gdk_pixbuf_get_width(viewer->src_pixbuf);
+ gdouble height = (gdouble)gdk_pixbuf_get_height(viewer->src_pixbuf);
+ gdouble h_scale = GTK_WIDGET(viewer)->allocation.width / width;
+ gdouble v_scale = GTK_WIDGET(viewer)->allocation.height / height;
+ if(h_scale < v_scale)
+ viewer->scale = h_scale;
+ else
+ viewer->scale = v_scale;
+ }
if(GTK_WIDGET_REALIZED(widget))
{
gdouble width = (gdouble)gdk_pixbuf_get_width(viewer->src_pixbuf);
More information about the Goodies-commits
mailing list