[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