]> git.sesse.net Git - kdenlive/commitdiff
Fix spacer bug (broken when removing a one frame zone)
authorJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 25 Jul 2009 08:28:45 +0000 (08:28 +0000)
committerJean-Baptiste Mardelle <jb@kdenlive.org>
Sat, 25 Jul 2009 08:28:45 +0000 (08:28 +0000)
svn path=/trunk/kdenlive/; revision=3764

src/renderer.cpp

index 8021eae2cb835baf948cd8ad83f5f111dd4143de..05fc9c62868fef253382477cf17801e5793d8c01 100644 (file)
@@ -1679,7 +1679,11 @@ void Render::mltInsertSpace(QMap <int, int> trackClipStartList, QMap <int, int>
                 if (!trackPlaylist.is_blank(clipIndex)) clipIndex --;
                 if (!trackPlaylist.is_blank(clipIndex)) kDebug() << "//// ERROR TRYING TO DELETE SPACE FROM " << insertPos;
                 int position = trackPlaylist.clip_start(clipIndex);
-                trackPlaylist.remove_region(position, - diff - 1);
+                int blankDuration = trackPlaylist.clip_length(clipIndex) - 1;
+                diff = -diff;
+                if (blankDuration - diff == 1)
+                    trackPlaylist.remove(clipIndex);
+                else trackPlaylist.remove_region(position, diff - 1);
             }
             trackPlaylist.consolidate_blanks(0);
         }
@@ -1736,7 +1740,10 @@ void Render::mltInsertSpace(QMap <int, int> trackClipStartList, QMap <int, int>
                     if (!trackPlaylist.is_blank(clipIndex)) clipIndex --;
                     if (!trackPlaylist.is_blank(clipIndex)) kDebug() << "//// ERROR TRYING TO DELETE SPACE FROM " << insertPos;
                     int position = trackPlaylist.clip_start(clipIndex);
-                    trackPlaylist.remove_region(position, - diff - 1);
+                    int blankDuration = trackPlaylist.clip_length(clipIndex) - 1;
+                    if (diff + blankDuration == 1)
+                        trackPlaylist.remove(clipIndex);
+                    else trackPlaylist.remove_region(position, - diff - 1);
                 }
                 trackPlaylist.consolidate_blanks(0);
             }