[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [18859] branches/blender2.5/blender/source /blender/editors: Action Editor - Tweaking code for refreshing.

Joshua Leung aligorith at gmail.com
Sun Feb 8 12:06:26 CET 2009


Revision: 18859
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=18859
Author:   aligorith
Date:     2009-02-08 12:06:26 +0100 (Sun, 08 Feb 2009)

Log Message:
-----------
Action Editor - Tweaking code for refreshing. 

Although there is currently code in place to listen to notifiers + tag updates for regions, these don't actually result in any changes yet. Everything still relies on 'manual' redraw tags for the entire area to have refreshes.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/editors/animation/anim_deps.c
    branches/blender2.5/blender/source/blender/editors/space_action/space_action.c

Modified: branches/blender2.5/blender/source/blender/editors/animation/anim_deps.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/animation/anim_deps.c	2009-02-08 10:21:38 UTC (rev 18858)
+++ branches/blender2.5/blender/source/blender/editors/animation/anim_deps.c	2009-02-08 11:06:26 UTC (rev 18859)
@@ -95,10 +95,10 @@
 				case ANIM_CHANGED_KEYFRAMES_VALUES:
 					/* keyframe values changed, so transform may have changed */
 					// XXX what about other cases? maybe we need general ND_KEYFRAMES or ND_ANIMATION?
-					WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL);
+					WM_event_add_notifier(C, NC_OBJECT|ND_KEYS|ND_TRANSFORM, NULL);
 					break;
-				case ANIM_CHANGED_KEYFRAMES_SELECT:	// XXX what to do here?
-					WM_event_add_notifier(C, NC_SCENE, NULL);
+				case ANIM_CHANGED_KEYFRAMES_SELECT:
+					WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, NULL);
 					break;
 				case ANIM_CHANGED_CHANNELS:
 					// XXX err... check available datatypes in dopesheet first?
@@ -117,8 +117,24 @@
 		{
 			Object *obact= CTX_data_active_object(C);
 			
-			// only update active object for now... more detail to come!
-			WM_event_add_notifier(C, NC_OBJECT, obact);
+			switch (data_changed) {
+				case ANIM_CHANGED_KEYFRAMES_VALUES:
+					/* keyframe values changed, so transform may have changed */
+					// XXX what about other cases? maybe we need general ND_KEYFRAMES or ND_ANIMATION?
+					WM_event_add_notifier(C, NC_OBJECT|ND_KEYS|ND_TRANSFORM, obact);
+					break;
+				case ANIM_CHANGED_KEYFRAMES_SELECT:
+					WM_event_add_notifier(C, NC_OBJECT|ND_KEYS, obact);
+					break;
+				case ANIM_CHANGED_CHANNELS:
+					// XXX err... check available datatypes in dopesheet first?
+					// FIXME: this currently doesn't work (to update own view)
+					WM_event_add_notifier(C, NC_OBJECT|ND_BONE_ACTIVE|ND_BONE_SELECT, obact);
+					break;
+			}
+			
+			// XXX for now, at least update own editor!
+			ED_area_tag_redraw(CTX_wm_area(C));
 		}
 			break;
 			

Modified: branches/blender2.5/blender/source/blender/editors/space_action/space_action.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_action/space_action.c	2009-02-08 10:21:38 UTC (rev 18858)
+++ branches/blender2.5/blender/source/blender/editors/space_action/space_action.c	2009-02-08 11:06:26 UTC (rev 18859)
@@ -298,7 +298,6 @@
 			switch(wmn->data) {
 				case ND_BONE_ACTIVE:
 				case ND_BONE_SELECT:
-				case ND_KEYS:
 					ED_region_tag_redraw(ar);
 					break;
 			}
@@ -327,6 +326,7 @@
 				case ND_BONE_ACTIVE:
 				case ND_BONE_SELECT:
 				case ND_KEYS:
+				case ND_TRANSFORM:
 					ED_region_tag_redraw(ar);
 					break;
 			}




More information about the Bf-blender-cvs mailing list