[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [54829] trunk/blender/source/blender/ editors/object/object_add.c: fix for own error r54703, the event-> mval was relative to a different region.

Campbell Barton ideasman42 at gmail.com
Mon Feb 25 01:45:22 CET 2013


Revision: 54829
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54829
Author:   campbellbarton
Date:     2013-02-25 00:45:20 +0000 (Mon, 25 Feb 2013)
Log Message:
-----------
fix for own error r54703, the event->mval was relative to a different region.
also make recent image dnd patch add the new object at the mouse cursor.

Revision Links:
--------------
    http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=54703

Modified Paths:
--------------
    trunk/blender/source/blender/editors/object/object_add.c

Modified: trunk/blender/source/blender/editors/object/object_add.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_add.c	2013-02-25 00:03:58 UTC (rev 54828)
+++ trunk/blender/source/blender/editors/object/object_add.c	2013-02-25 00:45:20 UTC (rev 54829)
@@ -771,13 +771,17 @@
 	else {
 		/* add new empty */
 		unsigned int layer;
-		float loc[3], rot[3];
+		float rot[3];
 
-		if (!ED_object_add_generic_get_opts(C, op, loc, rot, NULL, &layer, NULL))
+		if (!ED_object_add_generic_get_opts(C, op, NULL, rot, NULL, &layer, NULL))
 			return OPERATOR_CANCELLED;
 
-		ob = ED_object_add_type(C, OB_EMPTY, loc, rot, FALSE, layer);
+		ob = ED_object_add_type(C, OB_EMPTY, NULL, rot, FALSE, layer);
 		ob->empty_drawtype = OB_EMPTY_IMAGE;
+
+		/* add under the mouse */
+		ED_object_location_from_view(C, ob->loc);
+		ED_view3d_cursor3d_position(C, ob->loc, event->mval);
 	}
 
 	ob->data = ima;
@@ -2110,8 +2114,11 @@
 	basen->lay = basen->object->lay = scene->lay;
 
 	if (event) {
+		ARegion *ar = CTX_wm_region(C);
+		const int mval[2] = {event->x - ar->winrct.xmin,
+		                     event->y - ar->winrct.ymin};
 		ED_object_location_from_view(C, basen->object->loc);
-		ED_view3d_cursor3d_position(C, basen->object->loc, event->mval);
+		ED_view3d_cursor3d_position(C, basen->object->loc, mval);
 	}
 	
 	ED_base_object_activate(C, basen);




More information about the Bf-blender-cvs mailing list