[Top][All Lists]
[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);
- [Gnash-commit] gnash ChangeLog server/movie_root.cpp,
Sandro Santilli <=