[Xfce4-commits] <ristretto:master> Limit move and zoom selection to the inside of the image-frame.

Stephan Arts noreply at xfce.org
Sun Dec 18 09:18:02 CET 2011


Updating branch refs/heads/master
         to 97a169c4755d83c6ae626439d426cd7f994e2147 (commit)
       from 89127b8c5899ba151bfced6f61e353042ad5e9b7 (commit)

commit 97a169c4755d83c6ae626439d426cd7f994e2147
Author: Stephan Arts <stephan at xfce.org>
Date:   Sun Dec 18 09:16:04 2011 +0100

    Limit move and zoom selection to the inside of the image-frame.

 src/image_viewer.c |   28 ++++++++++++++++++++--------
 1 files changed, 20 insertions(+), 8 deletions(-)

diff --git a/src/image_viewer.c b/src/image_viewer.c
index 702df06..6a58052 100644
--- a/src/image_viewer.c
+++ b/src/image_viewer.c
@@ -2155,19 +2155,31 @@ rstto_button_press_event (
         {
             if (!(event->state & (GDK_CONTROL_MASK)))
             {
-                GdkCursor *cursor = gdk_cursor_new(GDK_FLEUR);
-                gdk_window_set_cursor(widget->window, cursor);
-                gdk_cursor_unref(cursor);
-                rstto_image_viewer_set_motion_state (viewer, RSTTO_IMAGE_VIEWER_MOTION_STATE_MOVE);
+                if ( (event->x > viewer->priv->rendering.x_offset) &&
+                     (event->y > viewer->priv->rendering.y_offset) &&
+                     (event->y < (viewer->priv->rendering.y_offset + viewer->priv->rendering.height)) &&
+                     (event->x < (viewer->priv->rendering.x_offset + viewer->priv->rendering.width)))
+                {
+                    GdkCursor *cursor = gdk_cursor_new(GDK_FLEUR);
+                    gdk_window_set_cursor(widget->window, cursor);
+                    gdk_cursor_unref(cursor);
+                    rstto_image_viewer_set_motion_state (viewer, RSTTO_IMAGE_VIEWER_MOTION_STATE_MOVE);
+                }
             }
 
             if (event->state & GDK_CONTROL_MASK)
             {
-                GdkCursor *cursor = gdk_cursor_new(GDK_UL_ANGLE);
-                gdk_window_set_cursor(widget->window, cursor);
-                gdk_cursor_unref(cursor);
+                if ( (event->x > viewer->priv->rendering.x_offset) &&
+                     (event->y > viewer->priv->rendering.y_offset) &&
+                     (event->y < (viewer->priv->rendering.y_offset + viewer->priv->rendering.height)) &&
+                     (event->x < (viewer->priv->rendering.x_offset + viewer->priv->rendering.width)))
+                {
+                    GdkCursor *cursor = gdk_cursor_new(GDK_UL_ANGLE);
+                    gdk_window_set_cursor(widget->window, cursor);
+                    gdk_cursor_unref(cursor);
 
-                rstto_image_viewer_set_motion_state (viewer, RSTTO_IMAGE_VIEWER_MOTION_STATE_BOX_ZOOM);
+                    rstto_image_viewer_set_motion_state (viewer, RSTTO_IMAGE_VIEWER_MOTION_STATE_BOX_ZOOM);
+                }
             }
         }
         return TRUE;


More information about the Xfce4-commits mailing list