[Bf-blender-cvs] [99e81540981] greasepencil-object: Compile Fix: Fixes for the mode toggle operators

Joshua Leung noreply at git.blender.org
Thu Feb 8 15:26:05 CET 2018


Commit: 99e8154098169f350b3d0404be984efef2f68f9c
Author: Joshua Leung
Date:   Fri Feb 9 03:17:07 2018 +1300
Branches: greasepencil-object
https://developer.blender.org/rB99e8154098169f350b3d0404be984efef2f68f9c

Compile Fix: Fixes for the mode toggle operators

* Changed ob->mode / ob->restore_mode to
  workspace->object_mode_restore / workspace->object_mode

* BKE_workspace_object_mode_set() got removed.
  From the changes in rna_wm.c in (345c6298e995ea618c34282ba6d7ab5af032f191)
  it looks like this is all we still need to do now.
  However, this will need to be reviewed more carefully later.
  For now, this will do!

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

M	source/blender/editors/gpencil/gpencil_edit.c

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

diff --git a/source/blender/editors/gpencil/gpencil_edit.c b/source/blender/editors/gpencil/gpencil_edit.c
index 9425da089ec..9312b18b199 100644
--- a/source/blender/editors/gpencil/gpencil_edit.c
+++ b/source/blender/editors/gpencil/gpencil_edit.c
@@ -208,15 +208,17 @@ static int gpencil_editmode_toggle_exec(bContext *C, wmOperator *op)
 
 	if (is_object) {
 		/* try to back previous mode */
-		if ((ob->restore_mode) && ((gpd->flag & GP_DATA_STROKE_EDITMODE) == 0) && (back == 1)) {
-			mode = ob->restore_mode;
+		if ((workspace->object_mode_restore) && ((gpd->flag & GP_DATA_STROKE_EDITMODE) == 0) && (back == 1)) {
+			mode = workspace->object_mode_restore;
 		}
-		ob->restore_mode = ob->mode;
-		ob->mode = mode;
+		workspace->object_mode_restore = workspace->object_mode;
+		workspace->object_mode = mode;
 	}
 
 	/* set workspace mode */
-	BKE_workspace_object_mode_set(workspace, scene, mode);
+	// XXX: was BKE_workspace_object_mode_set()
+	ViewLayer *view_layer = BKE_workspace_view_layer_get(workspace, scene);
+	ED_object_base_activate(C, view_layer->basact);
 	/* setup other modes */
 	gpencil_setup_modes(C, gpd, mode);
 	/* set cache as dirty */
@@ -289,15 +291,17 @@ static int gpencil_paintmode_toggle_exec(bContext *C, wmOperator *op)
 
 	if (is_object) {
 		/* try to back previous mode */
-		if ((ob->restore_mode) && ((gpd->flag & GP_DATA_STROKE_PAINTMODE) == 0) && (back == 1)) {
-			mode = ob->restore_mode;
+		if ((workspace->object_mode_restore) && ((gpd->flag & GP_DATA_STROKE_PAINTMODE) == 0) && (back == 1)) {
+			mode = workspace->object_mode_restore;
 		}
-		ob->restore_mode = ob->mode;
-		ob->mode = mode;
+		workspace->object_mode_restore = workspace->object_mode;
+		workspace->object_mode = mode;
 	}
 
 	/* set workspace mode */
-	BKE_workspace_object_mode_set(workspace, scene, mode);
+	// XXX: was BKE_workspace_object_mode_set()
+	ViewLayer *view_layer = BKE_workspace_view_layer_get(workspace, scene);
+	ED_object_base_activate(C, view_layer->basact);
 	/* setup other modes */
 	gpencil_setup_modes(C, gpd, mode);
 	/* set cache as dirty */
@@ -369,15 +373,17 @@ static int gpencil_sculptmode_toggle_exec(bContext *C, wmOperator *op)
 
 	if (is_object) {
 		/* try to back previous mode */
-		if ((ob->restore_mode) && ((gpd->flag & GP_DATA_STROKE_SCULPTMODE) == 0) && (back == 1)) {
-			mode = ob->restore_mode;
+		if ((workspace->object_mode_restore) && ((gpd->flag & GP_DATA_STROKE_SCULPTMODE) == 0) && (back == 1)) {
+			mode = workspace->object_mode_restore;
 		}
-		ob->restore_mode = ob->mode;
-		ob->mode = mode;
+		workspace->object_mode_restore = workspace->object_mode;
+		workspace->object_mode = mode;
 	}
 
 	/* set workspace mode */
-	BKE_workspace_object_mode_set(workspace, scene, mode);
+	// XXX: was BKE_workspace_object_mode_set()
+	ViewLayer *view_layer = BKE_workspace_view_layer_get(workspace, scene);
+	ED_object_base_activate(C, view_layer->basact);
 	/* setup other modes */
 	gpencil_setup_modes(C, gpd, mode);
 	/* set cache as dirty */
@@ -449,15 +455,17 @@ static int gpencil_weightmode_toggle_exec(bContext *C, wmOperator *op)
 
 	if (is_object) {
 		/* try to back previous mode */
-		if ((ob->restore_mode) && ((gpd->flag & GP_DATA_STROKE_WEIGHTMODE) == 0) && (back == 1)) {
-			mode = ob->restore_mode;
+		if ((workspace->object_mode_restore) && ((gpd->flag & GP_DATA_STROKE_WEIGHTMODE) == 0) && (back == 1)) {
+			mode = workspace->object_mode_restore;
 		}
-		ob->restore_mode = ob->mode;
-		ob->mode = mode;
+		workspace->object_mode_restore = workspace->object_mode;
+		workspace->object_mode = mode;
 	}
 
 	/* set workspace mode */
-	BKE_workspace_object_mode_set(workspace, scene, mode);
+	// XXX: was BKE_workspace_object_mode_set()
+	ViewLayer *view_layer = BKE_workspace_view_layer_get(workspace, scene);
+	ED_object_base_activate(C, view_layer->basact);
 	/* setup other modes */
 	gpencil_setup_modes(C, gpd, mode);
 	/* set cache as dirty */



More information about the Bf-blender-cvs mailing list