X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fawindowgui.C;h=89080802a7868c054ff3ca4da49cbd74d7de3783;hb=d1bc42c0643e30b93e058dfd01b4329f1b75149f;hp=1dcacb945b982f20bbebddc650ab9111d08d2242;hpb=49f85559268fc040fe7ba5611cc0520793cf728b;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/awindowgui.C b/cinelerra-5.1/cinelerra/awindowgui.C index 1dcacb94..89080802 100644 --- a/cinelerra-5.1/cinelerra/awindowgui.C +++ b/cinelerra-5.1/cinelerra/awindowgui.C @@ -1143,6 +1143,30 @@ void AWindowGUI::update_asset_list() //printf("AWindowGUI::update_asset_list 7 %d\n", assets.total); } +void AWindowGUI::update_picon(Indexable *indexable) +{ +//printf("AWindowGUI::update_asset_list 1\n"); + VIcon *vicon = 0; + for(int i = 0; i < assets.total; i++) { + AssetPicon *picon = (AssetPicon*)assets.values[i]; + if( picon->indexable == indexable || + picon->edl == (EDL *)indexable ) { + char name[BCTEXTLEN]; + FileSystem fs; + fs.extract_name(name, indexable->path); + picon->set_text(name); + vicon = picon->vicon; + break; + } + } + if( vicon ) { + stop_vicon_drawing(); + vicon->clear_images(); + vicon->reset(indexable->get_frame_rate()); + start_vicon_drawing(); + } +} + void AWindowGUI::sort_assets() { //printf("AWindowGUI::sort_assets 1 %s\n", mwindow->edl->session->current_folder); @@ -1734,12 +1758,17 @@ int AWindowAssets::drag_stop_event() if(!result) { - for(int i = 0; i < mwindow->vwindows.size(); i++) + for(int i = 0; !result && i < mwindow->vwindows.size(); i++) { VWindow *vwindow = mwindow->vwindows.get(i); + if( !vwindow ) continue; if( !vwindow->is_running() ) continue; + if( vwindow->gui->is_hidden() ) continue; vwindow->gui->lock_window("AWindowAssets::drag_stop_event"); - result = vwindow->gui->drag_stop(); + if( vwindow->gui->cursor_above() && + vwindow->gui->get_cursor_over_window() ) { + result = vwindow->gui->drag_stop(); + } vwindow->gui->unlock_window(); } }