Fix T67826: View selected fails with files from 2.7x
authorCampbell Barton <ideasman42@gmail.com>
Mon, 29 Jul 2019 05:17:24 +0000 (15:17 +1000)
committerCampbell Barton <ideasman42@gmail.com>
Mon, 29 Jul 2019 05:31:00 +0000 (15:31 +1000)
Grease pencil could have edit mode enabled in old files.

source/blender/editors/space_view3d/view3d_edit.c

index 7c4b35507b94f8a3140b172158a35050ab549fcc..fd0d9c6891ff63293ff6a22499c1f86c745edb17 100644 (file)
@@ -2924,12 +2924,12 @@ static int viewselected_exec(bContext *C, wmOperator *op)
   Scene *scene = CTX_data_scene(C);
   Depsgraph *depsgraph = CTX_data_depsgraph(C);
   ViewLayer *view_layer_eval = DEG_get_evaluated_view_layer(depsgraph);
-  bGPdata *gpd = CTX_data_gpencil_data(C);
-  const bool is_gp_edit = GPENCIL_ANY_MODE(gpd);
-  const bool is_face_map = ((is_gp_edit == false) && ar->gizmo_map &&
-                            WM_gizmomap_is_any_selected(ar->gizmo_map));
   Object *ob_eval = OBACT(view_layer_eval);
   Object *obedit = CTX_data_edit_object(C);
+  const bGPdata *gpd_eval = ob_eval && (ob_eval->type == OB_GPENCIL) ? ob_eval->data : NULL;
+  const bool is_gp_edit = gpd_eval ? GPENCIL_ANY_MODE(gpd_eval) : false;
+  const bool is_face_map = ((is_gp_edit == false) && ar->gizmo_map &&
+                            WM_gizmomap_is_any_selected(ar->gizmo_map));
   float min[3], max[3];
   bool ok = false, ok_dist = true;
   const bool use_all_regions = RNA_boolean_get(op->ptr, "use_all_regions");