[Xfce4-commits] ristretto:ristretto-0.0 Fix 'zoom-fit' when resizing

2011-10-23 Thread Stephan Arts
Updating branch refs/heads/ristretto-0.0
 to 3c9fbba878bb2518b4e9915f43be88dcb0b501a8 (commit)
   from 656f9b4bb9f4b7d51cc012a384e08fa4f0175879 (commit)

commit 3c9fbba878bb2518b4e9915f43be88dcb0b501a8
Author: Stephan Arts step...@xfce.org
Date:   Tue Mar 10 13:02:15 2009 +0100

Fix 'zoom-fit' when resizing

 src/picture_viewer.c |   28 ++--
 1 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/src/picture_viewer.c b/src/picture_viewer.c
index e3230d3..427274a 100644
--- a/src/picture_viewer.c
+++ b/src/picture_viewer.c
@@ -932,7 +932,9 @@ cb_rstto_picture_viewer_queued_repaint (RsttoPictureViewer 
*viewer)
 GdkPixbuf *p_src_pixbuf = NULL;
 GdkPixbuf *p_tmp_pixbuf = NULL;
 gdouble *p_scale = NULL;
+gboolean *p_fit_to_screen= NULL;
 gdouble scale;
+gboolean fit_to_screen = FALSE;
 gdouble width, height;
 GtkWidget *widget = GTK_WIDGET (viewer);
 
@@ -946,12 +948,15 @@ cb_rstto_picture_viewer_queued_repaint 
(RsttoPictureViewer *viewer)
 }
 
 p_scale = g_object_get_data (G_OBJECT (viewer-priv-image), 
viewer-scale);
+p_fit_to_screen = g_object_get_data (G_OBJECT (viewer-priv-image), 
viewer-fit-to-screen);
 scale = *p_scale;
+fit_to_screen = *p_fit_to_screen;
 }
 
-if (scale = 0)
+if ((scale = 0) || (fit_to_screen == TRUE))
 {
 scale = rstto_picture_viewer_calculate_scale (viewer);
+*p_fit_to_screen = TRUE;
 *p_scale = scale;
 }
 
@@ -1157,18 +1162,37 @@ static void
 rstto_picture_viewer_set_zoom_mode(RsttoPictureViewer *viewer, RsttoZoomMode 
mode)
 {
 gdouble scale;
+gboolean *p_fit_to_screen;
 viewer-priv-zoom_mode = mode;
 
 switch (viewer-priv-zoom_mode)
 {
 case RSTTO_ZOOM_MODE_CUSTOM:
+if (viewer-priv-image)
+{
+p_fit_to_screen = g_object_get_data (G_OBJECT 
(viewer-priv-image), viewer-fit-to-screen);
+*p_fit_to_screen = FALSE;
+g_object_set_data (G_OBJECT (viewer-priv-image), 
viewer-fit-to-screen, p_fit_to_screen);
+}
 break;
 case RSTTO_ZOOM_MODE_FIT:
+if (viewer-priv-image)
+{
+p_fit_to_screen = g_object_get_data (G_OBJECT 
(viewer-priv-image), viewer-fit-to-screen);
+*p_fit_to_screen = TRUE;
+g_object_set_data (G_OBJECT (viewer-priv-image), 
viewer-fit-to-screen, p_fit_to_screen);
+}
 scale = rstto_picture_viewer_calculate_scale (viewer);
 if (scale != -1.0)
 rstto_picture_viewer_set_scale (viewer, scale);
 break;
 case RSTTO_ZOOM_MODE_100:
+if (viewer-priv-image)
+{
+p_fit_to_screen = g_object_get_data (G_OBJECT 
(viewer-priv-image), viewer-fit-to-screen);
+*p_fit_to_screen = FALSE;
+g_object_set_data (G_OBJECT (viewer-priv-image), 
viewer-fit-to-screen, p_fit_to_screen);
+}
 rstto_picture_viewer_set_scale (viewer, 1);
 break;
 }
@@ -1208,7 +1232,7 @@ rstto_picture_viewer_set_image (RsttoPictureViewer 
*viewer, RsttoImage *image)
 if (scale == NULL)
 {
 scale = g_new0 (gdouble, 1);
-*scale = 0.0;
+*scale = -1.0;
 g_object_set_data (G_OBJECT (viewer-priv-image), viewer-scale, 
scale);
 }
 if (fit_to_screen == NULL)
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits


[Xfce4-commits] ristretto:ristretto-0.0 Fix 'zoom-fit' when resizing

2011-10-23 Thread Stephan Arts
Updating branch refs/heads/ristretto-0.0
 to 3c9fbba878bb2518b4e9915f43be88dcb0b501a8 (commit)
   from 656f9b4bb9f4b7d51cc012a384e08fa4f0175879 (commit)

commit 3c9fbba878bb2518b4e9915f43be88dcb0b501a8
Author: Stephan Arts step...@xfce.org
Date:   Tue Mar 10 13:02:15 2009 +0100

Fix 'zoom-fit' when resizing

 src/picture_viewer.c |   28 ++--
 1 files changed, 26 insertions(+), 2 deletions(-)

diff --git a/src/picture_viewer.c b/src/picture_viewer.c
index e3230d3..427274a 100644
--- a/src/picture_viewer.c
+++ b/src/picture_viewer.c
@@ -932,7 +932,9 @@ cb_rstto_picture_viewer_queued_repaint (RsttoPictureViewer 
*viewer)
 GdkPixbuf *p_src_pixbuf = NULL;
 GdkPixbuf *p_tmp_pixbuf = NULL;
 gdouble *p_scale = NULL;
+gboolean *p_fit_to_screen= NULL;
 gdouble scale;
+gboolean fit_to_screen = FALSE;
 gdouble width, height;
 GtkWidget *widget = GTK_WIDGET (viewer);
 
@@ -946,12 +948,15 @@ cb_rstto_picture_viewer_queued_repaint 
(RsttoPictureViewer *viewer)
 }
 
 p_scale = g_object_get_data (G_OBJECT (viewer-priv-image), 
viewer-scale);
+p_fit_to_screen = g_object_get_data (G_OBJECT (viewer-priv-image), 
viewer-fit-to-screen);
 scale = *p_scale;
+fit_to_screen = *p_fit_to_screen;
 }
 
-if (scale = 0)
+if ((scale = 0) || (fit_to_screen == TRUE))
 {
 scale = rstto_picture_viewer_calculate_scale (viewer);
+*p_fit_to_screen = TRUE;
 *p_scale = scale;
 }
 
@@ -1157,18 +1162,37 @@ static void
 rstto_picture_viewer_set_zoom_mode(RsttoPictureViewer *viewer, RsttoZoomMode 
mode)
 {
 gdouble scale;
+gboolean *p_fit_to_screen;
 viewer-priv-zoom_mode = mode;
 
 switch (viewer-priv-zoom_mode)
 {
 case RSTTO_ZOOM_MODE_CUSTOM:
+if (viewer-priv-image)
+{
+p_fit_to_screen = g_object_get_data (G_OBJECT 
(viewer-priv-image), viewer-fit-to-screen);
+*p_fit_to_screen = FALSE;
+g_object_set_data (G_OBJECT (viewer-priv-image), 
viewer-fit-to-screen, p_fit_to_screen);
+}
 break;
 case RSTTO_ZOOM_MODE_FIT:
+if (viewer-priv-image)
+{
+p_fit_to_screen = g_object_get_data (G_OBJECT 
(viewer-priv-image), viewer-fit-to-screen);
+*p_fit_to_screen = TRUE;
+g_object_set_data (G_OBJECT (viewer-priv-image), 
viewer-fit-to-screen, p_fit_to_screen);
+}
 scale = rstto_picture_viewer_calculate_scale (viewer);
 if (scale != -1.0)
 rstto_picture_viewer_set_scale (viewer, scale);
 break;
 case RSTTO_ZOOM_MODE_100:
+if (viewer-priv-image)
+{
+p_fit_to_screen = g_object_get_data (G_OBJECT 
(viewer-priv-image), viewer-fit-to-screen);
+*p_fit_to_screen = FALSE;
+g_object_set_data (G_OBJECT (viewer-priv-image), 
viewer-fit-to-screen, p_fit_to_screen);
+}
 rstto_picture_viewer_set_scale (viewer, 1);
 break;
 }
@@ -1208,7 +1232,7 @@ rstto_picture_viewer_set_image (RsttoPictureViewer 
*viewer, RsttoImage *image)
 if (scale == NULL)
 {
 scale = g_new0 (gdouble, 1);
-*scale = 0.0;
+*scale = -1.0;
 g_object_set_data (G_OBJECT (viewer-priv-image), viewer-scale, 
scale);
 }
 if (fit_to_screen == NULL)
___
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits