[Goodies-commits] r3415 - ristretto/trunk/src
Stephan Arts
stephan at xfce.org
Sat Oct 20 13:52:35 CEST 2007
Author: stephan
Date: 2007-10-20 11:52:35 +0000 (Sat, 20 Oct 2007)
New Revision: 3415
Modified:
ristretto/trunk/src/picture_viewer.c
Log:
Fix real-time update when moving the image around
Remove mouse-wheel zoom, going to fix that later
Modified: ristretto/trunk/src/picture_viewer.c
===================================================================
--- ristretto/trunk/src/picture_viewer.c 2007-10-20 10:26:31 UTC (rev 3414)
+++ ristretto/trunk/src/picture_viewer.c 2007-10-20 11:52:35 UTC (rev 3415)
@@ -42,6 +42,8 @@
{
gdouble x;
gdouble y;
+ gint h_val;
+ gint v_val;
} motion;
GtkMenu *menu;
};
@@ -821,40 +823,11 @@
case GDK_SCROLL_LEFT:
if (scale <= 0.05)
return;
- rstto_navigator_entry_set_scale(entry, scale / 1.05);
- rstto_navigator_entry_set_fit_to_screen (entry, FALSE);
-
- viewer->hadjustment->value = ((viewer->hadjustment->value + event->x) / 1.05) - event->x;
- viewer->vadjustment->value = ((viewer->vadjustment->value + event->y) / 1.05) - event->y;
break;
case GDK_SCROLL_DOWN:
case GDK_SCROLL_RIGHT:
if (scale >= 16)
return;
- rstto_navigator_entry_set_scale(entry, scale * 1.05);
- rstto_navigator_entry_set_fit_to_screen (entry, FALSE);
-
- viewer->hadjustment->value = ((viewer->hadjustment->value + event->x) * 1.05) - event->x;
-
- if((viewer->hadjustment->value + viewer->hadjustment->page_size) > viewer->hadjustment->upper)
- {
- viewer->hadjustment->value = viewer->hadjustment->upper - viewer->hadjustment->page_size;
- }
- if((viewer->hadjustment->value) < viewer->hadjustment->lower)
- {
- viewer->hadjustment->value = viewer->hadjustment->lower;
- }
-
- viewer->vadjustment->value = ((viewer->vadjustment->value + event->y) * 1.05) - event->y;
-
- if((viewer->vadjustment->value + viewer->vadjustment->page_size) > viewer->vadjustment->upper)
- {
- viewer->vadjustment->value = viewer->vadjustment->upper - viewer->vadjustment->page_size;
- }
- if((viewer->vadjustment->value) < viewer->vadjustment->lower)
- {
- viewer->vadjustment->value = viewer->vadjustment->lower;
- }
break;
}
@@ -1034,6 +1007,38 @@
{
if (event->state & GDK_BUTTON1_MASK)
{
+ if (viewer->priv->motion.x != event->x)
+ {
+ gint val = viewer->hadjustment->value;
+ viewer->hadjustment->value = viewer->priv->motion.h_val + (viewer->priv->motion.x - event->x);
+ if((viewer->hadjustment->value + viewer->hadjustment->page_size) > viewer->hadjustment->upper)
+ {
+ viewer->hadjustment->value = viewer->hadjustment->upper - viewer->hadjustment->page_size;
+ }
+ if((viewer->hadjustment->value) < viewer->hadjustment->lower)
+ {
+ viewer->hadjustment->value = viewer->hadjustment->lower;
+ }
+ if (val != viewer->hadjustment->value)
+ gtk_adjustment_value_changed(viewer->hadjustment);
+ }
+
+ if (viewer->priv->motion.y != event->y)
+ {
+ gint val = viewer->vadjustment->value;
+ viewer->vadjustment->value = viewer->priv->motion.v_val + (viewer->priv->motion.y - event->y);
+ if((viewer->vadjustment->value + viewer->vadjustment->page_size) > viewer->vadjustment->upper)
+ {
+ viewer->vadjustment->value = viewer->vadjustment->upper - viewer->vadjustment->page_size;
+ }
+ if((viewer->vadjustment->value) < viewer->vadjustment->lower)
+ {
+ viewer->vadjustment->value = viewer->vadjustment->lower;
+ }
+ if (val != viewer->vadjustment->value)
+ gtk_adjustment_value_changed(viewer->vadjustment);
+ }
+
}
return TRUE;
}
@@ -1050,6 +1055,8 @@
viewer->priv->motion.x = event->x;
viewer->priv->motion.y = event->y;
+ viewer->priv->motion.h_val = viewer->hadjustment->value;
+ viewer->priv->motion.v_val = viewer->vadjustment->value;
}
if(event->button == 3)
{
@@ -1072,39 +1079,7 @@
{
if(event->button == 1)
{
- /* Move the image around */
GtkWidget *widget = GTK_WIDGET(viewer);
- GdkCursor *cursor = gdk_cursor_new(GDK_WATCH);
- gdk_window_set_cursor(widget->window, cursor);
- gdk_cursor_unref(cursor);
-
- if (viewer->priv->motion.x != event->x)
- {
- viewer->hadjustment->value += (viewer->priv->motion.x - event->x);
- if((viewer->hadjustment->value + viewer->hadjustment->page_size) > viewer->hadjustment->upper)
- {
- viewer->hadjustment->value = viewer->hadjustment->upper - viewer->hadjustment->page_size;
- }
- if((viewer->hadjustment->value) < viewer->hadjustment->lower)
- {
- viewer->hadjustment->value = viewer->hadjustment->lower;
- }
- gtk_adjustment_value_changed(viewer->hadjustment);
- }
- if (viewer->priv->motion.y != event->y)
- {
- viewer->vadjustment->value += (viewer->priv->motion.y - event->y);
- if((viewer->vadjustment->value + viewer->vadjustment->page_size) > viewer->vadjustment->upper)
- {
- viewer->vadjustment->value = viewer->vadjustment->upper - viewer->vadjustment->page_size;
- }
- if((viewer->vadjustment->value) < viewer->vadjustment->lower)
- {
- viewer->vadjustment->value = viewer->vadjustment->lower;
- }
- gtk_adjustment_value_changed(viewer->vadjustment);
- }
-
gdk_window_set_cursor(widget->window, NULL);
}
More information about the Goodies-commits
mailing list