X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fclippopup.C;h=677b9bedf4ff4a6cb17b859492f2ba6b03d7ea30;hb=86bd203ac1fc29d93f63d13e2979468f06bdc3a2;hp=a364947a94269793fc6db9c92221f263e97cc167;hpb=b55798fc64eee00c6fab3b4763e791befb7275f9;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/clippopup.C b/cinelerra-5.1/cinelerra/clippopup.C index a364947a..677b9bed 100644 --- a/cinelerra-5.1/cinelerra/clippopup.C +++ b/cinelerra-5.1/cinelerra/clippopup.C @@ -219,21 +219,18 @@ ClipPopupViewWindow::~ClipPopupViewWindow() int ClipPopupViewWindow::handle_event() { -// Find window with nothing - VWindow *vwindow = mwindow->get_viewer(1); - -// TODO: create new vwindow or change current vwindow - vwindow->gui->lock_window("ClipPopupView::handle_event"); - - if( mwindow->session->drag_assets->total ) - vwindow->change_source( - mwindow->session->drag_assets->values[0]); - else - if( mwindow->session->drag_clips->total ) - vwindow->change_source( - mwindow->session->drag_clips->values[0]); - - vwindow->gui->unlock_window(); + for( int i=0; isession->drag_assets->size(); ++i ) { + VWindow *vwindow = mwindow->get_viewer(1); + vwindow->gui->lock_window("ClipPopupView::handle_event 1"); + vwindow->change_source(mwindow->session->drag_assets->get(i)); + vwindow->gui->unlock_window(); + } + for( int i=0; isession->drag_clips->size(); ++i ) { + VWindow *vwindow = mwindow->get_viewer(1); + vwindow->gui->lock_window("ClipPopupView::handle_event 2"); + vwindow->change_source(mwindow->session->drag_clips->get(i)); + vwindow->gui->unlock_window(); + } return 1; } @@ -253,10 +250,14 @@ int ClipPopupCopy::handle_event() MWindowGUI *gui = mwindow->gui; gui->lock_window("ClipPopupCopy::handle_event"); if( mwindow->session->drag_clips->total > 0 ) { - FileXML file; EDL *edl = mwindow->session->drag_clips->values[0]; + EDL *copy_edl = new EDL; // no parent or assets wont be copied + copy_edl->create_objects(); + copy_edl->copy_all(edl); + FileXML file; double start = 0, end = edl->tracks->total_length(); - edl->copy(start, end, 1, &file, "", 1); + copy_edl->copy(start, end, 1, &file, "", 1); + copy_edl->remove_user(); const char *file_string = file.string(); long file_length = strlen(file_string); gui->to_clipboard(file_string, file_length, SECONDARY_SELECTION);