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 */

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to