[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [33138] trunk/blender/source/blender/ editors/space_view3d/view3d_toolbar.c: Bugfix #24767

Ton Roosendaal ton at blender.org
Wed Nov 17 17:25:30 CET 2010


Revision: 33138
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=33138
Author:   ton
Date:     2010-11-17 17:25:30 +0100 (Wed, 17 Nov 2010)

Log Message:
-----------
Bugfix #24767

Operator redo in 3D window now moves context to the main region,
makes knife cut work (and probably others)

Todo: this callback should be shared with other redo panels. On the
todo list.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_view3d/view3d_toolbar.c

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_toolbar.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_toolbar.c	2010-11-17 15:35:45 UTC (rev 33137)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_toolbar.c	2010-11-17 16:25:30 UTC (rev 33138)
@@ -64,23 +64,34 @@
 /* ******************* view3d space & buttons ************** */
 
 
-/* op->invoke */
+/* op->exec */
+/* XXX DUPLICATE CODE */
 static void redo_cb(bContext *C, void *arg_op, void *UNUSED(arg2))
 {
 	wmOperator *lastop= arg_op;
 	
 	if(lastop) {
+		ARegion *ar= CTX_wm_region(C);
+		ARegion *ar1= BKE_area_find_region_type(CTX_wm_area(C), RGN_TYPE_WINDOW);
 		int retval;
 		
+		if(ar1)
+			CTX_wm_region_set(C, ar1);
+		
 		if (G.f & G_DEBUG)
 			printf("operator redo %s\n", lastop->type->name);
+		
 		ED_undo_pop_op(C, lastop);
 		retval= WM_operator_repeat(C, lastop);
+		
 		if((retval & OPERATOR_FINISHED)==0) {
 			if (G.f & G_DEBUG)
 				printf("operator redo failed %s\n", lastop->type->name);
 			ED_undo_redo(C);
 		}
+		
+		/* set region back */
+		CTX_wm_region_set(C, ar);
 	}
 }
 





More information about the Bf-blender-cvs mailing list