[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36827] trunk/blender/source/blender: fix [#26618] StringProperty with sub_type of FILE_PATH not updated correctly from icon

Campbell Barton ideasman42 at gmail.com
Mon May 23 12:14:08 CEST 2011


Revision: 36827
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36827
Author:   campbellbarton
Date:     2011-05-23 10:14:07 +0000 (Mon, 23 May 2011)
Log Message:
-----------
fix [#26618] StringProperty with sub_type of FILE_PATH not updated correctly from icon

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_buttons/buttons_ops.c
    trunk/blender/source/blender/editors/space_view3d/view3d_toolbar.c
    trunk/blender/source/blender/windowmanager/WM_api.h
    trunk/blender/source/blender/windowmanager/intern/wm_operators.c

Modified: trunk/blender/source/blender/editors/space_buttons/buttons_ops.c
===================================================================
--- trunk/blender/source/blender/editors/space_buttons/buttons_ops.c	2011-05-23 08:14:29 UTC (rev 36826)
+++ trunk/blender/source/blender/editors/space_buttons/buttons_ops.c	2011-05-23 10:14:07 UTC (rev 36827)
@@ -51,6 +51,7 @@
 #include "WM_types.h"
 
 #include "ED_screen.h"
+#include "ED_util.h"
 
 #include "RNA_access.h"
 
@@ -131,7 +132,19 @@
 	RNA_property_update(C, &fbo->ptr, fbo->prop);
 	MEM_freeN(str);
 
+
+	/* special, annoying exception, filesel on redo panel [#26618] */
+	{
+		wmOperator *redo_op= WM_operator_last_redo(C);
+		if(redo_op) {
+			if(fbo->ptr.data == redo_op->ptr->data) {
+				ED_undo_operator_repeat(C, redo_op);
+			}
+		}
+	}
+
 	MEM_freeN(op->customdata);
+
 	return OPERATOR_FINISHED;
 }
 

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_toolbar.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_toolbar.c	2011-05-23 08:14:29 UTC (rev 36826)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_toolbar.c	2011-05-23 10:14:07 UTC (rev 36827)
@@ -69,19 +69,6 @@
 
 /* ******************* view3d space & buttons ************** */
 
-static wmOperator *view3d_last_operator(const bContext *C)
-{
-	wmWindowManager *wm= CTX_wm_manager(C);
-	wmOperator *op;
-
-	/* only for operators that are registered and did an undo push */
-	for(op= wm->operators.last; op; op= op->prev)
-		if((op->type->flag & OPTYPE_REGISTER) && (op->type->flag & OPTYPE_UNDO))
-			break;
-
-	return op;
-}
-
 static void view3d_panel_operator_redo_buts(const bContext *C, Panel *pa, wmOperator *op)
 {
 	uiLayoutOperatorButs(C, pa->layout, op, NULL, 'V', 0);
@@ -89,7 +76,7 @@
 
 static void view3d_panel_operator_redo_header(const bContext *C, Panel *pa)
 {
-	wmOperator *op= view3d_last_operator(C);
+	wmOperator *op= WM_operator_last_redo(C);
 
 	if(op) BLI_strncpy(pa->drawname, op->type->name, sizeof(pa->drawname));
 	else BLI_strncpy(pa->drawname, "Operator", sizeof(pa->drawname));
@@ -110,7 +97,7 @@
 
 static void view3d_panel_operator_redo(const bContext *C, Panel *pa)
 {
-	wmOperator *op= view3d_last_operator(C);
+	wmOperator *op= WM_operator_last_redo(C);
 	uiBlock *block;
 	
 	if(op==NULL)

Modified: trunk/blender/source/blender/windowmanager/WM_api.h
===================================================================
--- trunk/blender/source/blender/windowmanager/WM_api.h	2011-05-23 08:14:29 UTC (rev 36826)
+++ trunk/blender/source/blender/windowmanager/WM_api.h	2011-05-23 10:14:07 UTC (rev 36827)
@@ -247,6 +247,8 @@
 void		WM_operator_properties_gesture_straightline(struct wmOperatorType *ot, int cursor);
 void		WM_operator_properties_select_all(struct wmOperatorType *ot);
 
+wmOperator *WM_operator_last_redo(const struct bContext *C);
+
 /* MOVE THIS SOMEWHERE ELSE */
 #define	SEL_TOGGLE		0
 #define	SEL_SELECT		1

Modified: trunk/blender/source/blender/windowmanager/intern/wm_operators.c
===================================================================
--- trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2011-05-23 08:14:29 UTC (rev 36826)
+++ trunk/blender/source/blender/windowmanager/intern/wm_operators.c	2011-05-23 10:14:07 UTC (rev 36827)
@@ -882,6 +882,19 @@
 	return 1;
 }
 
+wmOperator *WM_operator_last_redo(const bContext *C)
+{
+	wmWindowManager *wm= CTX_wm_manager(C);
+	wmOperator *op;
+
+	/* only for operators that are registered and did an undo push */
+	for(op= wm->operators.last; op; op= op->prev)
+		if((op->type->flag & OPTYPE_REGISTER) && (op->type->flag & OPTYPE_UNDO))
+			break;
+
+	return op;
+}
+
 static uiBlock *wm_block_create_redo(bContext *C, ARegion *ar, void *arg_op)
 {
 	wmOperator *op= arg_op;




More information about the Bf-blender-cvs mailing list