gnash-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Gnash-commit] gnash ChangeLog server/movie_root.cpp


From: Sandro Santilli
Subject: [Gnash-commit] gnash ChangeLog server/movie_root.cpp
Date: Mon, 03 Mar 2008 11:12:25 +0000

CVSROOT:        /sources/gnash
Module name:    gnash
Changes by:     Sandro Santilli <strk>  08/03/03 11:12:25

Modified files:
        .              : ChangeLog 
        server         : movie_root.cpp 

Log message:
        drag bounds are in local coordinate space, and non lock-centered drags
        must always honour it. Fixes bug #22460.

CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/gnash/ChangeLog?cvsroot=gnash&r1=1.5779&r2=1.5780
http://cvs.savannah.gnu.org/viewcvs/gnash/server/movie_root.cpp?cvsroot=gnash&r1=1.162&r2=1.163

Patches:
Index: ChangeLog
===================================================================
RCS file: /sources/gnash/gnash/ChangeLog,v
retrieving revision 1.5779
retrieving revision 1.5780
diff -u -b -r1.5779 -r1.5780
--- ChangeLog   3 Mar 2008 09:22:20 -0000       1.5779
+++ ChangeLog   3 Mar 2008 11:12:24 -0000       1.5780
@@ -1,5 +1,8 @@
 2008-03-03 Sandro Santilli <address@hidden>
 
+       * server/movie_root.cpp (doMouseDrag): drag bounds are in local
+         coordinate space, and non lock-centered drags must always
+         honour it. Fixes bug #22460.
        * server/vm/ASHandlers.cpp (CommonGetURL): implement GET/POST
          methods for targetted movie loads. Still missing POST using
          host-provided uri handler (to improve/define communication

Index: server/movie_root.cpp
===================================================================
RCS file: /sources/gnash/gnash/server/movie_root.cpp,v
retrieving revision 1.162
retrieving revision 1.163
diff -u -b -r1.162 -r1.163
--- server/movie_root.cpp       20 Feb 2008 14:46:27 -0000      1.162
+++ server/movie_root.cpp       3 Mar 2008 11:12:25 -0000       1.163
@@ -913,10 +913,12 @@
        get_mouse_state(x, y, buttons);
 
        point world_mouse(PIXELS_TO_TWIPS(x), PIXELS_TO_TWIPS(y));
-       if ( m_drag_state.hasBounds() )
+
+       matrix  parent_world_mat;
+       character* parent = dragChar->get_parent();
+       if (parent != NULL)
        {
-               // Clamp mouse coords within a defined rect.
-               m_drag_state.getBounds().clamp(world_mouse);
+           parent_world_mat = parent->get_world_matrix();
        }
 
        if (! m_drag_state.isLockCentered())
@@ -925,13 +927,18 @@
                world_mouse.y -= m_drag_state.yOffset();
        }
 
-       matrix  parent_world_mat;
-       character* parent = dragChar->get_parent();
-       if (parent != NULL)
+       if ( m_drag_state.hasBounds() )
        {
-           parent_world_mat = parent->get_world_matrix();
+               rect bounds;
+
+               // bounds are in local coordinate space
+               bounds.enclose_transformed_rect(parent_world_mat, 
m_drag_state.getBounds());
+
+               // Clamp mouse coords within a defined rect.
+               bounds.clamp(world_mouse);
        }
 
+
        point   parent_mouse;
        parent_world_mat.transform_by_inverse(&parent_mouse, world_mouse);
                        




reply via email to

[Prev in Thread] Current Thread [Next in Thread]