UI: disable shade flat/smooth in sculpt mode
authorCampbell Barton <ideasman42@gmail.com>
Thu, 16 Apr 2020 02:06:50 +0000 (12:06 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 16 Apr 2020 02:06:50 +0000 (12:06 +1000)
source/blender/editors/object/object_edit.c

index 6833143dec019e565b07b113113beb6346caf1ab..d944d4c4dd38a7ce1ff1eecebf5176dc567175b5 100644 (file)
@@ -1364,7 +1364,15 @@ static int shade_smooth_exec(bContext *C, wmOperator *op)
 
 static bool shade_poll(bContext *C)
 {
-  return (CTX_data_edit_object(C) == NULL);
+  ViewLayer *view_layer = CTX_data_view_layer(C);
+  Object *obact = OBACT(view_layer);
+  if (obact != NULL) {
+    /* Doesn't handle edit-data, sculpt dynamic-topology, or their undo systems. */
+    if (obact->mode & (OB_MODE_EDIT | OB_MODE_SCULPT)) {
+      return false;
+    }
+  }
+  return true;
 }
 
 void OBJECT_OT_shade_flat(wmOperatorType *ot)