[Goodies-commits] r3632 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Sun Nov 25 11:27:05 CET 2007
Author: stephan
Date: 2007-11-25 10:27:05 +0000 (Sun, 25 Nov 2007)
New Revision: 3632
Modified:
ristretto/trunk/src/picture_viewer.c
Log:
Box-zoom *almost* works
Modified: ristretto/trunk/src/picture_viewer.c
===================================================================
--- ristretto/trunk/src/picture_viewer.c 2007-11-25 09:02:35 UTC (rev 3631)
+++ ristretto/trunk/src/picture_viewer.c 2007-11-25 10:27:05 UTC (rev 3632)
@@ -921,27 +921,27 @@
gdouble top_left_x, top_left_y;
if (viewer->priv->motion.x < viewer->priv->motion.current_x)
{
- top_left_x = viewer->priv->motion.x;
+ top_left_x = viewer->priv->motion.x + viewer->hadjustment->value;
box_width = viewer->priv->motion.current_x - viewer->priv->motion.x;
}
else
{
- top_left_x = viewer->priv->motion.current_x;
+ top_left_x = viewer->priv->motion.current_x + viewer->hadjustment->value;
box_width = viewer->priv->motion.x - viewer->priv->motion.current_x;
}
if (viewer->priv->motion.y < viewer->priv->motion.current_y)
{
- top_left_y = viewer->priv->motion.y;
+ top_left_y = viewer->priv->motion.y + viewer->vadjustment->value;
box_height = viewer->priv->motion.current_y - viewer->priv->motion.y;
}
else
{
- top_left_y = viewer->priv->motion.current_y;
+ top_left_y = viewer->priv->motion.current_y + viewer->vadjustment->value;
box_height = viewer->priv->motion.y - viewer->priv->motion.current_y;
}
- gdouble h_scale = width / box_width * scale;
- gdouble v_scale = width / box_width * scale;
+ gdouble h_scale = widget->allocation.width / box_width * scale;
+ gdouble v_scale = widget->allocation.height / box_height * scale;
if (h_scale < v_scale)
{
@@ -951,6 +951,7 @@
{
rstto_navigator_entry_set_scale(entry, v_scale);
}
+
rstto_navigator_entry_set_fit_to_screen(entry, FALSE);
scale = rstto_navigator_entry_get_scale(entry);
@@ -963,7 +964,7 @@
viewer->hadjustment->lower = 0;
viewer->hadjustment->step_increment = 1;
viewer->hadjustment->page_increment = 100;
- viewer->hadjustment->value = (viewer->hadjustment->value + top_left_x) / old_scale * scale;
+ viewer->hadjustment->value = top_left_x;
if((viewer->hadjustment->value + viewer->hadjustment->page_size) > viewer->hadjustment->upper)
{
viewer->hadjustment->value = viewer->hadjustment->upper - viewer->hadjustment->page_size;
@@ -982,7 +983,7 @@
viewer->vadjustment->lower = 0;
viewer->vadjustment->step_increment = 1;
viewer->vadjustment->page_increment = 100;
- viewer->vadjustment->value = (viewer->vadjustment->value + top_left_x) / old_scale * scale;
+ viewer->vadjustment->value = top_left_y;
if((viewer->vadjustment->value + viewer->vadjustment->page_size) > viewer->vadjustment->upper)
{
viewer->vadjustment->value = viewer->vadjustment->upper - viewer->vadjustment->page_size;
More information about the Goodies-commits
mailing list