X-Git-Url: https://cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fawindowgui.C;h=b949e9cda10bc4a02f0d625b4b9db3e03157ca21;hb=3932d2c16e903573db3cacdb3102dea9639c6ca4;hp=bd7ec0f198b932205651c3d58a2f7021f4d7e62f;hpb=e8453fdab4d5ed7b384279a5b37c92010ac13295;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/cinelerra/awindowgui.C b/cinelerra-5.1/cinelerra/awindowgui.C index bd7ec0f1..b949e9cd 100644 --- a/cinelerra-5.1/cinelerra/awindowgui.C +++ b/cinelerra-5.1/cinelerra/awindowgui.C @@ -647,9 +647,13 @@ ViewPopup *AssetVIconThread::new_view_window() vicon->playing_audio = -1; break; case ASSET_VIEW_MEDIA: - vicon->playing_audio = 1; - vicon->start_audio(); - break; + switch( gui->vicon_drawing ) { + case AVICON_FULL_PLAY: + case AVICON_MOUSE_OVER: + vicon->playing_audio = 1; + vicon->start_audio(); + break; + } } wdw->set_active_subwindow(popup); return popup; @@ -1605,8 +1609,10 @@ void AWindowGUI::start_vicon_drawing() if( !vicon_thread->interrupted ) return; switch( vicon_drawing ) { case AVICON_FULL_PLAY: // all vicons, viewing, target - case AVICON_MOUSE_OVER: // one vicon, viewing, target break; + case AVICON_MOUSE_OVER: // one vicon, viewing, target + if( vicon_thread->solo ) break; + // fall thru case AVICON_SRC_TARGET: // no vicons, no view, target case AVICON_NO_PLAY: // no vicons, no view, no target return; @@ -2771,7 +2777,8 @@ int AWindowAssets::selection_changed() deactivate_selection(); } - else if( get_button_down() ) { + else if( get_button_down() && + mwindow->edl->session->assetlist_format != ASSETS_TEXT ) { if( (item = (AssetPicon*)get_selection(0, 0)) != 0 ) { switch( folder ) { case AW_MEDIA_FOLDER: @@ -2974,9 +2981,9 @@ int AWindowAssets::column_resize_event() return 1; } -int AWindowAssets::focus_in_event() +int AWindowAssets::cursor_enter_event() { - int ret = BC_ListBox::focus_in_event(); + int ret = BC_ListBox::cursor_enter_event(); switch( gui->vicon_drawing ) { case AVICON_FULL_PLAY: gui->start_vicon_drawing(); @@ -2990,6 +2997,13 @@ int AWindowAssets::focus_in_event() return ret; } +int AWindowAssets::cursor_leave_event() +{ + if( !gui->vicon_thread->viewing ) + gui->stop_vicon_drawing(); + return BC_ListBox::cursor_leave_event(); +} + int AWindowAssets::focus_out_event() { gui->stop_vicon_drawing(); @@ -3023,10 +3037,13 @@ int AWindowAssets::mouse_over_event(int no) case AVICON_MOUSE_OVER: if( !vicon ) break; gui->vicon_thread->solo = vicon; + gui->start_vicon_drawing(); + // fall thru + case AVICON_SRC_TARGET: + if( !vicon ) break; if( gui->vicon_thread->viewing ) gui->vicon_thread->set_view_popup(vicon); break; - case AVICON_SRC_TARGET: case AVICON_NO_PLAY: default: break; @@ -3280,6 +3297,7 @@ int AVIconDrawingItem::handle_event() AWindowGUI *agui = avicon->agui; agui->stop_vicon_drawing(); agui->vicon_thread->set_view_popup(0); + agui->vicon_thread->solo = 0; agui->vicon_drawing = id; agui->start_vicon_drawing(); return 1;