projects
/
goodguy
/
cinelerra.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add window layout feature, resource wdw select used, blue_dot/blond_cv theme fix...
[goodguy/cinelerra.git]
/
cinelerra-5.1
/
cinelerra
/
edits.C
diff --git
a/cinelerra-5.1/cinelerra/edits.C
b/cinelerra-5.1/cinelerra/edits.C
index a79bb171d9ba2f4178f4d5a7b45b54506a4a9a44..765d657c40a95b658fabe0c4804ef8db81be2b1b 100644
(file)
--- a/
cinelerra-5.1/cinelerra/edits.C
+++ b/
cinelerra-5.1/cinelerra/edits.C
@@
-220,10
+220,12
@@
Edit* Edits::insert_new_edit(int64_t position)
{
//printf("Edits::insert_new_edit 1\n");
Edit *current = split_edit(position);
{
//printf("Edits::insert_new_edit 1\n");
Edit *current = split_edit(position);
- if(current) current = PREVIOUS;
//printf("Edits::insert_new_edit 1\n");
Edit *new_edit = create_edit();
//printf("Edits::insert_new_edit 1\n");
Edit *new_edit = create_edit();
+ if( current ) new_edit->hard_right = current->hard_left;
+ if( current ) current = PREVIOUS;
+ if( current ) new_edit->hard_left = current->hard_right;
//printf("Edits::insert_new_edit 1\n");
insert_after(current, new_edit);
new_edit->startproject = position;
//printf("Edits::insert_new_edit 1\n");
insert_after(current, new_edit);
new_edit->startproject = position;
@@
-409,12
+411,14
@@
int Edits::optimize()
int64_t current_start = current->startproject;
int64_t next_end = next_edit->startproject + next_edit->length;
current->length = next_end - current_start;
int64_t current_start = current->startproject;
int64_t next_end = next_edit->startproject + next_edit->length;
current->length = next_end - current_start;
+ current->hard_right = next_edit->hard_right;
remove(next_edit);
result = 1;
}
}
remove(next_edit);
result = 1;
}
}
- if( last && last->silence() && !last->transition ) {
+ if( last && last->silence() &&
+ !last->transition && !last->hard_left && !last->hard_right ) {
delete last;
result = 1;
}
delete last;
result = 1;
}
@@
-800,7
+804,7
@@
void Edits::paste_silence(int64_t start, int64_t end)
Edit *new_edit = editof(start, PLAY_FORWARD, 0);
if (!new_edit) return;
Edit *new_edit = editof(start, PLAY_FORWARD, 0);
if (!new_edit) return;
- if( !new_edit->silence() ) {
+ if( !new_edit->silence()
|| new_edit->hard_right
) {
new_edit = insert_new_edit(start);
new_edit->length = end - start;
}
new_edit = insert_new_edit(start);
new_edit->length = end - start;
}