[Bf-blender-cvs] [f59728b3ea0] blender2.8: Object selection: Fixing cases where old selection flag was used

Dalai Felinto noreply at git.blender.org
Wed Dec 13 19:27:36 CET 2017


Commit: f59728b3ea0b1782b8d62fefd0a0bc27b70da51a
Author: Dalai Felinto
Date:   Wed Dec 13 16:24:37 2017 -0200
Branches: blender2.8
https://developer.blender.org/rBf59728b3ea0b1782b8d62fefd0a0bc27b70da51a

Object selection: Fixing cases where old selection flag was used

Basically these operators (select grouped object hooks and object select mode/less)
were not working in 2.8.

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

M	source/blender/editors/object/object_select.c

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

diff --git a/source/blender/editors/object/object_select.c b/source/blender/editors/object/object_select.c
index 552380cebdb..b20fe9a004c 100644
--- a/source/blender/editors/object/object_select.c
+++ b/source/blender/editors/object/object_select.c
@@ -625,9 +625,9 @@ static bool select_grouped_object_hooks(bContext *C, Object *ob)
 	for (md = ob->modifiers.first; md; md = md->next) {
 		if (md->type == eModifierType_Hook) {
 			hmd = (HookModifierData *) md;
-			if (hmd->object && !(hmd->object->flag & SELECT)) {
+			if (hmd->object) {
 				base = BKE_view_layer_base_find(view_layer, hmd->object);
-				if (base && (BASE_SELECTABLE(base))) {
+				if (base && ((base->flag & BASE_SELECTED) == 0) && (BASE_SELECTABLE(base))) {
 					ED_object_base_select(base, BA_SELECT);
 					changed = true;
 				}
@@ -1107,12 +1107,12 @@ static bool object_select_more_less(bContext *C, const bool select)
 
 	bool changed = false;
 	const short select_mode = select ? BA_SELECT : BA_DESELECT;
-	const short select_flag = select ? SELECT : 0;
+	const short select_flag = select ? BASE_SELECTED : 0;
 
 	for (ctx_base = ctx_base_list.first; ctx_base; ctx_base = ctx_base->next) {
 		Base *base = ctx_base->ptr.data;
 		Object *ob = base->object;
-		if ((ob->id.tag & LIB_TAG_DOIT) && ((ob->flag & SELECT) != select_flag)) {
+		if ((ob->id.tag & LIB_TAG_DOIT) && ((base->flag & BASE_SELECTED) != select_flag)) {
 			ED_object_base_select(base, select_mode);
 			changed = true;
 		}



More information about the Bf-blender-cvs mailing list