Commit: b5a2dc16fc4853f45be289a435f5e1fff2c74c9e
Author: Campbell Barton
Date:   Fri Jan 25 11:10:55 2019 +1100
Branches: master
https://developer.blender.org/rBb5a2dc16fc4853f45be289a435f5e1fff2c74c9e

Revert "WM: Repeat Last no longer reuses skip-save properties"

This reverts commit 1d908bffddb4c9815a986305ad4588032b81deee.

Enough uses of repeat last expect skip-save properties to be set,
transform being the most obvious example T60777#605681.

I wanted to avoid operators having account for two kinds of 'skip-save'
but this may be unavoidable.

===================================================================

M       source/blender/editors/screen/screen_ops.c
M       source/blender/windowmanager/WM_api.h
M       source/blender/windowmanager/intern/wm_event_system.c

===================================================================

diff --git a/source/blender/editors/screen/screen_ops.c 
b/source/blender/editors/screen/screen_ops.c
index 8736664d23c..6d332f8e427 100644
--- a/source/blender/editors/screen/screen_ops.c
+++ b/source/blender/editors/screen/screen_ops.c
@@ -3359,7 +3359,7 @@ static int repeat_last_exec(bContext *C, wmOperator 
*UNUSED(op))
 
        if (lastop) {
                WM_operator_free_all_after(wm, lastop);
-               WM_operator_repeat_interactive(C, lastop);
+               WM_operator_repeat(C, lastop);
        }
 
        return OPERATOR_CANCELLED;
diff --git a/source/blender/windowmanager/WM_api.h 
b/source/blender/windowmanager/WM_api.h
index 99e4950f3db..4f73e731457 100644
--- a/source/blender/windowmanager/WM_api.h
+++ b/source/blender/windowmanager/WM_api.h
@@ -321,8 +321,6 @@ bool        WM_operator_poll_context(struct bContext *C, 
struct wmOperatorType *
 int         WM_operator_call_ex(struct bContext *C, struct wmOperator *op, 
const bool store);
 int                    WM_operator_call                (struct bContext *C, 
struct wmOperator *op);
 int                    WM_operator_call_notest(struct bContext *C, struct 
wmOperator *op);
-
-int                    WM_operator_repeat_interactive(struct bContext *C, 
struct wmOperator *op);
 int                    WM_operator_repeat              (struct bContext *C, 
struct wmOperator *op);
 bool        WM_operator_repeat_check(const struct bContext *C, struct 
wmOperator *op);
 bool        WM_operator_is_repeat(const struct bContext *C, const struct 
wmOperator *op);
@@ -347,7 +345,6 @@ void        WM_operator_last_properties_ensure(struct 
wmOperatorType *ot, struct
 wmOperator *WM_operator_last_redo(const struct bContext *C);
 ID         *WM_operator_drop_load_path(struct bContext *C, struct wmOperator 
*op, const short idcode);
 
-bool        WM_operator_last_properties_init_ex(struct wmOperator *op, struct 
IDProperty *last_properties);
 bool        WM_operator_last_properties_init(struct wmOperator *op);
 bool        WM_operator_last_properties_store(struct wmOperator *op);
 
diff --git a/source/blender/windowmanager/intern/wm_event_system.c 
b/source/blender/windowmanager/intern/wm_event_system.c
index 29bbd6b0641..0362f393bdb 100644
--- a/source/blender/windowmanager/intern/wm_event_system.c
+++ b/source/blender/windowmanager/intern/wm_event_system.c
@@ -1040,42 +1040,6 @@ int WM_operator_repeat(bContext *C, wmOperator *op)
 {
        return wm_operator_exec(C, op, true, true);
 }
-/**
- * Execute this operator again interactively
- * without using #PROP_SKIP_SAVE properties, see: T60777.
- */
-int WM_operator_repeat_interactive(bContext *C, wmOperator *op)
-{
-       IDProperty *properties = op->properties ? IDP_New(IDP_GROUP, 
&(IDPropertyTemplate){0}, "wmOperatorProperties") : NULL;
-       PointerRNA *ptr = MEM_dupallocN(op->ptr);
-
-       SWAP(IDProperty *, op->properties, properties);
-       SWAP(PointerRNA *, op->ptr, ptr);
-       if (op->ptr) {
-               op->ptr->data = op->properties;
-       }
-
-       /* Use functionality to initialize from previous execution to avoid 
re-using PROP_SKIP_SAVE. */
-       if (properties) {
-               WM_operator_last_properties_init_ex(op, properties);
-       }
-
-       int retval = wm_operator_exec(C, op, true, true);
-
-       SWAP(IDProperty *, op->properties, properties);
-       SWAP(PointerRNA *, op->ptr, ptr);
-
-       if (properties) {
-               IDP_FreeProperty(properties);
-               MEM_freeN(properties);
-       }
-       if (ptr) {
-               MEM_freeN(ptr);
-       }
-
-       return retval;
-}
-
 /**
  * \return true if #WM_operator_repeat can run
  * simple check for now but may become more involved.
@@ -1262,13 +1226,13 @@ static bool 
operator_last_properties_init_impl(wmOperator *op, IDProperty *last_
        return changed;
 }
 
-bool WM_operator_last_properties_init_ex(wmOperator *op, IDProperty 
*last_properties)
+bool WM_operator_last_properties_init(wmOperator *op)
 {
        bool changed = false;
-       if (last_properties) {
-               changed |= operator_last_properties_init_impl(op, 
last_properties);
+       if (op->type->last_properties) {
+               changed |= operator_last_properties_init_impl(op, 
op->type->last_properties);
                for (wmOperator *opm = op->macro.first; opm; opm = opm->next) {
-                       IDProperty *idp_src = 
IDP_GetPropertyFromGroup(last_properties, opm->idname);
+                       IDProperty *idp_src = 
IDP_GetPropertyFromGroup(op->type->last_properties, opm->idname);
                        if (idp_src) {
                                changed |= 
operator_last_properties_init_impl(opm, idp_src);
                        }
@@ -1277,11 +1241,6 @@ bool WM_operator_last_properties_init_ex(wmOperator *op, 
IDProperty *last_proper
        return changed;
 }
 
-bool WM_operator_last_properties_init(wmOperator *op)
-{
-       return WM_operator_last_properties_init_ex(op, 
op->type->last_properties);
-}
-
 bool WM_operator_last_properties_store(wmOperator *op)
 {
        if (op->type->last_properties) {
@@ -1313,11 +1272,6 @@ bool WM_operator_last_properties_store(wmOperator *op)
 
 #else
 
-bool WM_operator_last_properties_init_ex(wmOperator *UNUSED(op), IDProperty 
*UNUSED(last_properties))
-{
-       return false;
-}
-
 bool WM_operator_last_properties_init(wmOperator *UNUSED(op))
 {
        return false;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to