Changeset View
Changeset View
Standalone View
Standalone View
source/blender/editors/space_view3d/view3d_select.c
| Show All 38 Lines | |||||
| #include "DNA_armature_types.h" | #include "DNA_armature_types.h" | ||||
| #include "DNA_curve_types.h" | #include "DNA_curve_types.h" | ||||
| #include "DNA_meta_types.h" | #include "DNA_meta_types.h" | ||||
| #include "DNA_mesh_types.h" | #include "DNA_mesh_types.h" | ||||
| #include "DNA_meshdata_types.h" | #include "DNA_meshdata_types.h" | ||||
| #include "DNA_object_types.h" | #include "DNA_object_types.h" | ||||
| #include "DNA_scene_types.h" | #include "DNA_scene_types.h" | ||||
| #include "DNA_tracking_types.h" | #include "DNA_tracking_types.h" | ||||
| #include "DNA_gpencil_types.h" | |||||
| #include "MEM_guardedalloc.h" | #include "MEM_guardedalloc.h" | ||||
| #include "BLI_math.h" | #include "BLI_math.h" | ||||
| #include "BLI_lasso.h" | #include "BLI_lasso.h" | ||||
| #include "BLI_rect.h" | #include "BLI_rect.h" | ||||
| #include "BLI_linklist.h" | #include "BLI_linklist.h" | ||||
| #include "BLI_listbase.h" | #include "BLI_listbase.h" | ||||
| Show All 12 Lines | |||||
| #include "BKE_mball.h" | #include "BKE_mball.h" | ||||
| #include "BKE_mesh.h" | #include "BKE_mesh.h" | ||||
| #include "BKE_object.h" | #include "BKE_object.h" | ||||
| #include "BKE_paint.h" | #include "BKE_paint.h" | ||||
| #include "BKE_editmesh.h" | #include "BKE_editmesh.h" | ||||
| #include "BKE_scene.h" | #include "BKE_scene.h" | ||||
| #include "BKE_tracking.h" | #include "BKE_tracking.h" | ||||
| #include "BKE_utildefines.h" | #include "BKE_utildefines.h" | ||||
| #include "BKE_workspace.h" | |||||
| #include "DEG_depsgraph.h" | #include "DEG_depsgraph.h" | ||||
| #include "WM_api.h" | #include "WM_api.h" | ||||
| #include "WM_types.h" | #include "WM_types.h" | ||||
| #include "RNA_access.h" | #include "RNA_access.h" | ||||
| #include "RNA_define.h" | #include "RNA_define.h" | ||||
| #include "RNA_enum_types.h" | #include "RNA_enum_types.h" | ||||
| #include "ED_armature.h" | #include "ED_armature.h" | ||||
| #include "ED_curve.h" | #include "ED_curve.h" | ||||
| #include "ED_particle.h" | #include "ED_particle.h" | ||||
| #include "ED_mesh.h" | #include "ED_mesh.h" | ||||
| #include "ED_object.h" | #include "ED_object.h" | ||||
| #include "ED_screen.h" | #include "ED_screen.h" | ||||
| #include "ED_sculpt.h" | #include "ED_sculpt.h" | ||||
| #include "ED_mball.h" | #include "ED_mball.h" | ||||
| #include "ED_gpencil.h" | |||||
| #include "UI_interface.h" | #include "UI_interface.h" | ||||
| #include "GPU_draw.h" | #include "GPU_draw.h" | ||||
| #include "GPU_glew.h" | #include "GPU_glew.h" | ||||
| #include "GPU_matrix.h" | #include "GPU_matrix.h" | ||||
| #include "view3d_intern.h" /* own include */ | #include "view3d_intern.h" /* own include */ | ||||
| ▲ Show 20 Lines • Show All 1,503 Lines • ▼ Show 20 Lines | else if (BASE_SELECTABLE_NEW(basact)) { | ||||
| else { | else { | ||||
| deselectall_except(sl, basact); | deselectall_except(sl, basact); | ||||
| ED_object_base_select(basact, BA_SELECT); | ED_object_base_select(basact, BA_SELECT); | ||||
| } | } | ||||
| if ((oldbasact != basact) && (is_obedit == false)) { | if ((oldbasact != basact) && (is_obedit == false)) { | ||||
| ED_object_base_activate(C, basact); /* adds notifier */ | ED_object_base_activate(C, basact); /* adds notifier */ | ||||
| } | } | ||||
| /* Set special modes for grease pencil | |||||
| The grease pencil modes are not real modes, but a hack to make the interface | |||||
| consistent, so need some tricks to keep UI synchronized */ | |||||
| if (((oldbasact) && oldbasact->object->type == OB_GPENCIL) || (basact->object->type == OB_GPENCIL)) { | |||||
| /* set cursor */ | |||||
| if (basact->object->mode == OB_MODE_GPENCIL_PAINT) { | |||||
| ED_gpencil_toggle_brush_cursor(C, true); | |||||
| } | |||||
| else if (basact->object->mode == OB_MODE_GPENCIL_SCULPT) { | |||||
| ED_gpencil_toggle_brush_cursor(C, true); | |||||
| } | |||||
| else if (basact->object->mode == OB_MODE_GPENCIL_WEIGHT) { | |||||
| ED_gpencil_toggle_brush_cursor(C, true); | |||||
| } | |||||
| else { | |||||
| /* TODO: maybe is better use restore */ | |||||
| ED_gpencil_toggle_brush_cursor(C, false); | |||||
| } | |||||
| /* set workspace mode */ | |||||
| BKE_workspace_object_mode_set(CTX_wm_workspace(C), basact->object->mode); | |||||
| } | |||||
| } | } | ||||
| WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene); | WM_event_add_notifier(C, NC_SCENE | ND_OB_SELECT, scene); | ||||
| } | } | ||||
| return retval; | return retval; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 1,308 Lines • Show Last 20 Lines | |||||