[Bf-blender-cvs] [fa96f7381c3] master: Cleanup: de-duplicate object-mode locking when selecting
Campbell Barton
noreply at git.blender.org
Tue Mar 22 07:44:26 CET 2022
Commit: fa96f7381c3dddefb43a75c845444ac4d5e8fb5a
Author: Campbell Barton
Date: Tue Mar 22 16:41:11 2022 +1100
Branches: master
https://developer.blender.org/rBfa96f7381c3dddefb43a75c845444ac4d5e8fb5a
Cleanup: de-duplicate object-mode locking when selecting
===================================================================
M source/blender/editors/space_view3d/view3d_select.c
===================================================================
diff --git a/source/blender/editors/space_view3d/view3d_select.c b/source/blender/editors/space_view3d/view3d_select.c
index 73155a3b52f..b51adb7cb5b 100644
--- a/source/blender/editors/space_view3d/view3d_select.c
+++ b/source/blender/editors/space_view3d/view3d_select.c
@@ -2450,19 +2450,6 @@ static bool ed_object_select_pick(bContext *C,
}
}
}
- if (scene->toolsettings->object_flag & SCE_OBJECT_MODE_LOCK) {
- if (is_obedit == false) {
- if (basact && !BKE_object_is_mode_compat(basact->object, object_mode)) {
- if (object_mode == OB_MODE_OBJECT) {
- struct Main *bmain = CTX_data_main(C);
- ED_object_mode_generic_exit(bmain, vc.depsgraph, scene, basact->object);
- }
- if (!BKE_object_is_mode_compat(basact->object, object_mode)) {
- basact = NULL;
- }
- }
- }
- }
}
else {
GPUSelectResult buffer[MAXPICKELEMS];
@@ -2578,31 +2565,30 @@ static bool ed_object_select_pick(bContext *C,
handled = true;
}
}
+ }
- if (scene->toolsettings->object_flag & SCE_OBJECT_MODE_LOCK) {
- if ((handled == false) && (is_obedit == false)) {
- if (basact && !BKE_object_is_mode_compat(basact->object, object_mode)) {
- if (object_mode == OB_MODE_OBJECT) {
- struct Main *bmain = CTX_data_main(C);
- ED_object_mode_generic_exit(bmain, vc.depsgraph, scene, basact->object);
- }
- if (!BKE_object_is_mode_compat(basact->object, object_mode)) {
- basact = NULL;
- }
- }
+ if ((scene->toolsettings->object_flag & SCE_OBJECT_MODE_LOCK) &&
+ /* No further selection should take place. */
+ (handled == false) &&
+ /* No special logic in edit-mode. */
+ (is_obedit == false)) {
+
+ if (basact && !BKE_object_is_mode_compat(basact->object, object_mode)) {
+ if (object_mode == OB_MODE_OBJECT) {
+ struct Main *bmain = CTX_data_main(C);
+ ED_object_mode_generic_exit(bmain, vc.depsgraph, scene, basact->object);
+ }
+ if (!BKE_object_is_mode_compat(basact->object, object_mode)) {
+ basact = NULL;
}
}
- }
- if (scene->toolsettings->object_flag & SCE_OBJECT_MODE_LOCK) {
/* Disallow switching modes,
* special exception for edit-mode - vertex-parent operator. */
- if ((handled == false) && (is_obedit == false)) {
- if (oldbasact && basact) {
- if ((oldbasact->object->mode != basact->object->mode) &&
- (oldbasact->object->mode & basact->object->mode) == 0) {
- basact = NULL;
- }
+ if (basact && oldbasact) {
+ if ((oldbasact->object->mode != basact->object->mode) &&
+ (oldbasact->object->mode & basact->object->mode) == 0) {
+ basact = NULL;
}
}
}
More information about the Bf-blender-cvs
mailing list