Fix edit-mode interfering with brush swap color
authorCampbell Barton <ideasman42@gmail.com>
Tue, 30 Jul 2019 05:37:45 +0000 (15:37 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 30 Jul 2019 05:37:45 +0000 (15:37 +1000)
D5353 by @robert-wallis

source/blender/editors/sculpt_paint/paint_image.c

index 41dfd6f68c3869dc644482583d44ff663ceb361d..a0f578c04d09efcc998d7f8ac68addda2305b09d 100644 (file)
@@ -1246,8 +1246,7 @@ static int brush_colors_flip_exec(bContext *C, wmOperator *UNUSED(op))
   Scene *scene = CTX_data_scene(C);
   UnifiedPaintSettings *ups = &scene->toolsettings->unified_paint_settings;
 
-  ViewLayer *view_layer = CTX_data_view_layer(C);
-  Paint *paint = BKE_paint_get_active(scene, view_layer);
+  Paint *paint = BKE_paint_get_active_from_context(C);
   Brush *br = BKE_paint_brush(paint);
 
   if (ups->flag & UNIFIED_PAINT_COLOR) {
@@ -1256,6 +1255,10 @@ static int brush_colors_flip_exec(bContext *C, wmOperator *UNUSED(op))
   else if (br) {
     swap_v3_v3(br->rgb, br->secondary_rgb);
   }
+  else {
+    return OPERATOR_CANCELLED;
+  }
+
   WM_event_add_notifier(C, NC_BRUSH | NA_EDITED, br);
 
   return OPERATOR_FINISHED;