Motion Tracking: fixed dopesheet left in incorrect state after joining tracks
authorSergey Sharybin <sergey.vfx@gmail.com>
Mon, 15 Oct 2012 10:43:10 +0000 (10:43 +0000)
committerSergey Sharybin <sergey.vfx@gmail.com>
Mon, 15 Oct 2012 10:43:10 +0000 (10:43 +0000)
source/blender/blenkernel/BKE_tracking.h
source/blender/blenkernel/intern/tracking.c
source/blender/editors/space_clip/tracking_ops.c

index c14476a3b59298aa1bbeccddb47b9f061d79f4ef..167f7bd831a2f2fb8ccc16e153ab8414fd712f7b 100644 (file)
@@ -80,7 +80,7 @@ int BKE_tracking_track_has_marker_at_frame(struct MovieTrackingTrack *track, int
 int BKE_tracking_track_has_enabled_marker_at_frame(struct MovieTrackingTrack *track, int framenr);
 
 void BKE_tracking_track_path_clear(struct MovieTrackingTrack *track, int ref_frame, int action);
-void BKE_tracking_tracks_join(struct MovieTrackingTrack *dst_track, struct MovieTrackingTrack *src_track);
+void BKE_tracking_tracks_join(struct MovieTracking *tracking, struct MovieTrackingTrack *dst_track, struct MovieTrackingTrack *src_track);
 
 struct MovieTrackingTrack *BKE_tracking_track_get_named(struct MovieTracking *tracking,
                                                         struct MovieTrackingObject *object,
index 89d577201b0e593b87f0b1af3cfa542e2d261edf..0d304482060877d8fd447a4e4fcc910a8a5c04e9 100644 (file)
@@ -631,7 +631,7 @@ void BKE_tracking_track_path_clear(MovieTrackingTrack *track, int ref_frame, int
        }
 }
 
-void BKE_tracking_tracks_join(MovieTrackingTrack *dst_track, MovieTrackingTrack *src_track)
+void BKE_tracking_tracks_join(MovieTracking *tracking, MovieTrackingTrack *dst_track, MovieTrackingTrack *src_track)
 {
        int i = 0, a = 0, b = 0, tot;
        MovieTrackingMarker *markers;
@@ -734,6 +734,8 @@ void BKE_tracking_tracks_join(MovieTrackingTrack *dst_track, MovieTrackingTrack
        dst_track->markersnr = i;
 
        MEM_freeN(markers);
+
+       BKE_tracking_dopesheet_tag_update(tracking);
 }
 
 MovieTrackingTrack *BKE_tracking_track_get_named(MovieTracking *tracking, MovieTrackingObject *object, const char *name)
index 1af6237689c8cdb66cd15f2a6dfd5bc2af003b87..857d88a9a795a4e686204831bc6d6b7e34052f5b 100644 (file)
@@ -2766,7 +2766,7 @@ static int join_tracks_exec(bContext *C, wmOperator *op)
                next = track->next;
 
                if (TRACK_VIEW_SELECTED(sc, track) && track != act_track) {
-                       BKE_tracking_tracks_join(act_track, track);
+                       BKE_tracking_tracks_join(tracking, act_track, track);
 
                        if (tracking->stabilization.rot_track == track)
                                tracking->stabilization.rot_track = act_track;