[Bf-blender-cvs] [f30086b5b66] blender2.8: Merge branch 'master' into blender2.8

Dalai Felinto noreply at git.blender.org
Thu Nov 9 11:37:37 CET 2017


Commit: f30086b5b66b1f8f797a61d3506f97eda557d76a
Author: Dalai Felinto
Date:   Thu Nov 9 08:32:20 2017 -0200
Branches: blender2.8
https://developer.blender.org/rBf30086b5b66b1f8f797a61d3506f97eda557d76a

Merge branch 'master' into blender2.8

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



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

diff --cc source/blender/editors/animation/anim_channels_edit.c
index e705d0268e3,25f1e206be5..580cfaa48c7
--- a/source/blender/editors/animation/anim_channels_edit.c
+++ b/source/blender/editors/animation/anim_channels_edit.c
@@@ -2684,47 -2682,48 +2684,49 @@@ static int mouse_anim_channels(bContex
  		{
  			bDopeSheet *ads = (bDopeSheet *)ac->data;
  			Scene *sce = (Scene *)ads->source;
 +			SceneLayer *scene_layer = ac->scene_layer;
- 			BaseLegacy *base = (BaseLegacy *)ale->data;
+ 			Base *base = (Base *)ale->data;
  			Object *ob = base->object;
  			AnimData *adt = ob->adt;
  			
  			/* set selection status */
- 			if (selectmode == SELECT_INVERT) {
- 				/* swap select */
- 				ED_object_base_select(base, BA_INVERT);
- 				BKE_scene_object_base_flag_sync_from_base(base);
- 				
- 				if (adt) adt->flag ^= ADT_UI_SELECTED;
- 			}
- 			else {
- 				Base *b;
- 				
- 				/* deselect all */
- 				/* TODO: should this deselect all other types of channels too? */
- 				for (b = scene_layer->object_bases.first; b; b = b->next) {
- 					ED_object_base_select(b, BA_DESELECT);
- 					BKE_scene_object_base_flag_sync_from_base(b);
- 					if (b->object->adt) b->object->adt->flag &= ~(ADT_UI_SELECTED | ADT_UI_ACTIVE);
 -			if ((ob->restrictflag & OB_RESTRICT_SELECT) == 0) {
++			if (base->flag & BASE_SELECTABLED) {
+ 				if (selectmode == SELECT_INVERT) {
+ 					/* swap select */
 -					base->flag ^= SELECT;
 -					ob->flag = base->flag;
++					ED_object_base_select(base, BA_INVERT);
++					BKE_scene_object_base_flag_sync_from_base(base);
+ 
+ 					if (adt) adt->flag ^= ADT_UI_SELECTED;
  				}
- 				
- 				/* select object now */
- 				ED_object_base_select(base, BA_SELECT);
- 				BKE_scene_object_base_flag_sync_from_base(base);
- 				if (adt) adt->flag |= ADT_UI_SELECTED;
+ 				else {
+ 					Base *b;
+ 
+ 					/* deselect all */
+ 					/* TODO: should this deselect all other types of channels too? */
 -					for (b = sce->base.first; b; b = b->next) {
 -						b->flag &= ~SELECT;
 -						b->object->flag = b->flag;
++					for (b = scene_layer->object_bases.first; b; b = b->next) {
++						ED_object_base_select(b, BA_DESELECT);
++						BKE_scene_object_base_flag_sync_from_base(b);
+ 						if (b->object->adt) b->object->adt->flag &= ~(ADT_UI_SELECTED | ADT_UI_ACTIVE);
+ 					}
+ 
+ 					/* select object now */
 -					base->flag |= SELECT;
 -					ob->flag |= SELECT;
++					ED_object_base_select(base, BA_SELECT);
++					BKE_scene_object_base_flag_sync_from_base(base);
+ 					if (adt) adt->flag |= ADT_UI_SELECTED;
+ 				}
+ 
+ 				/* change active object - regardless of whether it is now selected [T37883] */
 -				ED_base_object_activate(C, base); /* adds notifier */
++				ED_object_base_activate(C, base); /* adds notifier */
+ 
+ 				if ((adt) && (adt->flag & ADT_UI_SELECTED))
+ 					adt->flag |= ADT_UI_ACTIVE;
+ 
+ 				/* ensure we exit editmode on whatever object was active before to avoid getting stuck there - T48747 */
+ 				if (ob != sce->obedit)
+ 					ED_object_editmode_exit(C, EM_FREEDATA | EM_FREEUNDO | EM_WAITCURSOR | EM_DO_UNDO);
+ 
+ 				notifierFlags |= (ND_ANIMCHAN | NA_SELECTED);
  			}
- 			
- 			/* change active object - regardless of whether it is now selected [T37883] */
- 			ED_object_base_activate(C, base); /* adds notifier */
- 			
- 			if ((adt) && (adt->flag & ADT_UI_SELECTED))
- 				adt->flag |= ADT_UI_ACTIVE;
- 			
- 			/* ensure we exit editmode on whatever object was active before to avoid getting stuck there - T48747 */
- 			if (ob != sce->obedit)
- 				ED_object_editmode_exit(C, EM_FREEDATA | EM_FREEUNDO | EM_WAITCURSOR | EM_DO_UNDO);
- 			
- 			notifierFlags |= (ND_ANIMCHAN | NA_SELECTED);
  			break;
  		}
  		case ANIMTYPE_FILLACTD: /* Action Expander */
diff --cc source/blender/editors/space_nla/nla_channels.c
index c1c9326b4ef,c261821db16..fc8c4b51635
--- a/source/blender/editors/space_nla/nla_channels.c
+++ b/source/blender/editors/space_nla/nla_channels.c
@@@ -129,7 -129,7 +129,7 @@@ static int mouse_nla_channels(bContext 
  			Object *ob = base->object;
  			AnimData *adt = ob->adt;
  			
- 			if (nlaedit_is_tweakmode_on(ac) == 0) {
 -			if (nlaedit_is_tweakmode_on(ac) == 0 && (ob->restrictflag & OB_RESTRICT_SELECT) == 0) {
++			if (nlaedit_is_tweakmode_on(ac) == 0 && (base->flag & BASE_SELECTABLED)) {
  				/* set selection status */
  				if (selectmode == SELECT_INVERT) {
  					/* swap select */



More information about the Bf-blender-cvs mailing list