[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