[Bf-blender-cvs] [9fff74f1447] blender-v2.81-release: Sculpt: disable undo from any UI elements in sculpt mode

Campbell Barton noreply at git.blender.org
Thu Nov 14 09:51:37 CET 2019


Commit: 9fff74f1447f8db1e288efe9ebd559370455de9f
Author: Campbell Barton
Date:   Thu Nov 14 19:48:29 2019 +1100
Branches: blender-v2.81-release
https://developer.blender.org/rB9fff74f1447f8db1e288efe9ebd559370455de9f

Sculpt: disable undo from any UI elements in sculpt mode

Causes undo push in sculpt mode, see: T71434

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

M	source/blender/editors/interface/interface_handlers.c

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

diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c
index 0b4adb33b1c..806b5789df1 100644
--- a/source/blender/editors/interface/interface_handlers.c
+++ b/source/blender/editors/interface/interface_handlers.c
@@ -764,6 +764,7 @@ static void ui_apply_but_undo(uiBut *but)
 
   if (but->flag & UI_BUT_UNDO) {
     const char *str = NULL;
+    bool skip_undo = false;
 
     /* define which string to use for undo */
     if (but->type == UI_BTYPE_MENU) {
@@ -792,11 +793,23 @@ static void ui_apply_but_undo(uiBut *but)
       else {
         ID *id = but->rnapoin.owner_id;
         if (!ED_undo_is_legacy_compatible_for_property(but->block->evil_C, id)) {
-          str = "";
+          skip_undo = true;
         }
       }
     }
 
+    if (skip_undo == false) {
+      /* XXX: disable all undo pushes from UI changes from sculpt mode as they cause memfile undo
+       * steps to be written which cause lag: T71434. */
+      if (BKE_paintmode_get_active_from_context(but->block->evil_C) == PAINT_MODE_SCULPT) {
+        skip_undo = true;
+      }
+    }
+
+    if (skip_undo) {
+      str = "";
+    }
+
     /* delayed, after all other funcs run, popups are closed, etc */
     after = ui_afterfunc_new();
     BLI_strncpy(after->undostr, str, sizeof(after->undostr));



More information about the Bf-blender-cvs mailing list