[Goodies-commits] r3178 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Sat Sep 8 12:12:28 CEST 2007
Author: stephan
Date: 2007-09-08 10:12:28 +0000 (Sat, 08 Sep 2007)
New Revision: 3178
Modified:
ristretto/trunk/src/picture_viewer.c
Log:
improve zooming performance
Modified: ristretto/trunk/src/picture_viewer.c
===================================================================
--- ristretto/trunk/src/picture_viewer.c 2007-09-08 04:17:29 UTC (rev 3177)
+++ ristretto/trunk/src/picture_viewer.c 2007-09-08 10:12:28 UTC (rev 3178)
@@ -375,7 +375,9 @@
GdkPixbuf *tmp_pixbuf = NULL;
if (viewer->hadjustment && viewer->vadjustment)
{
- tmp_pixbuf = gdk_pixbuf_new_subpixbuf(viewer->priv->src_pixbuf,
+ if (scale < 1.0)
+ {
+ tmp_pixbuf = gdk_pixbuf_new_subpixbuf(viewer->priv->src_pixbuf,
viewer->hadjustment->value / scale >= 0?
viewer->hadjustment->value / scale : 0,
viewer->vadjustment->value / scale >= 0?
@@ -384,6 +386,12 @@
GTK_WIDGET(viewer)->allocation.width/scale:width,
((GTK_WIDGET(viewer)->allocation.height/scale)) < height?
GTK_WIDGET(viewer)->allocation.height/scale:height);
+ }
+ else
+ {
+ tmp_pixbuf = viewer->priv->src_pixbuf;
+ g_object_ref(tmp_pixbuf);
+ }
}
if(viewer->priv->dst_pixbuf)
@@ -562,7 +570,7 @@
GdkPixbuf *tmp_pixbuf = NULL;
if (viewer->vadjustment && viewer->hadjustment)
{
- if (scale != 1.0)
+ if (scale < 1.0)
{
tmp_pixbuf = gdk_pixbuf_new_subpixbuf(viewer->priv->src_pixbuf,
viewer->hadjustment->value / scale >= 0?
@@ -692,11 +700,15 @@
{
case GDK_SCROLL_UP:
case GDK_SCROLL_LEFT:
+ if (scale <= 0.05)
+ return;
rstto_navigator_entry_set_scale(entry, scale / 1.2);
rstto_navigator_entry_set_fit_to_screen (entry, FALSE);
break;
case GDK_SCROLL_DOWN:
case GDK_SCROLL_RIGHT:
+ if (scale >= 16)
+ return;
viewer->vadjustment->value = ((viewer->vadjustment->value + event->y) - viewer->vadjustment->page_size/2) * 1.2;
viewer->hadjustment->value = ((viewer->hadjustment->value + event->x) - viewer->hadjustment->page_size/2) * 1.2;
More information about the Goodies-commits
mailing list