[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [17449] branches/animsys2/source/blender/ src/editaction.c: AnimSys2: Dopesheet - Object Selection

Joshua Leung aligorith at gmail.com
Fri Nov 14 04:01:40 CET 2008


Revision: 17449
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=17449
Author:   aligorith
Date:     2008-11-14 04:01:39 +0100 (Fri, 14 Nov 2008)

Log Message:
-----------
AnimSys2: Dopesheet - Object Selection

Improved the Object channel selection behaviour to be more consistent with the rest of Blender

Modified Paths:
--------------
    branches/animsys2/source/blender/src/editaction.c

Modified: branches/animsys2/source/blender/src/editaction.c
===================================================================
--- branches/animsys2/source/blender/src/editaction.c	2008-11-14 02:13:10 UTC (rev 17448)
+++ branches/animsys2/source/blender/src/editaction.c	2008-11-14 03:01:39 UTC (rev 17449)
@@ -4444,6 +4444,7 @@
 	switch (chantype) {
 		case ACTTYPE_OBJECT:
 			{
+				Scene *sce= (Scene *)G.saction->ads.source;
 				Base *base= (Base *)act_channel;
 				Object *ob= base->object;
 				
@@ -4452,9 +4453,27 @@
 					ob->nlaflag ^= OB_ADS_COLLAPSED;
 				}
 				else {
-					// TODO: selection stuff?
-					base->flag ^= SELECT;
-					ob->flag ^= SELECT;
+					/* set selection status */
+					if (G.qual & LR_SHIFTKEY) {
+						/* swap select */
+						base->flag ^= SELECT;
+						ob->flag= base->flag;
+					}
+					else {
+						Base *b;
+						
+						/* deleselect all */
+						for (b= sce->base.first; b; b= b->next) {
+							b->flag &= ~SELECT;
+							b->object->flag= b->flag;
+						}
+						
+						/* select object now */
+						base->flag |= SELECT;
+						ob->flag |= SELECT;
+					}
+					
+					set_active_base(base);	/* editview.c */
 				}
 			}
 				break;





More information about the Bf-blender-cvs mailing list