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;

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to