X-Git-Url: http://git.cinelerra-gg.org/git/?p=goodguy%2Fhistory.git;a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fvicon.C;h=f9978b26ebf0e917b1d7f6852a26b72dbf670c6d;hp=9c41ccf1ea915d20548a0f755f6676ea92249abe;hb=7e5a0760f40ff787cc3d93cb7768a901ebe52809;hpb=c279e21fc2394a7908bbd1ba8c79b116fe9fb14a diff --git a/cinelerra-5.1/guicast/vicon.C b/cinelerra-5.1/guicast/vicon.C index 9c41ccf1..f9978b26 100644 --- a/cinelerra-5.1/guicast/vicon.C +++ b/cinelerra-5.1/guicast/vicon.C @@ -105,6 +105,7 @@ VIconThread(BC_WindowBase *wdw, int vw, int vh) this->refresh_rate = VICON_RATE; done = 0; interrupted = -1; + stop_age = 0; } VIconThread:: @@ -130,6 +131,8 @@ start_drawing() wdw->set_active_subwindow(view_win); if( interrupted < 0 ) draw_lock->unlock(); + timer->update(); + timer->subtract(-stop_age); interrupted = 0; wdw->unlock_window(); } @@ -141,6 +144,7 @@ stop_drawing() set_view_popup(0); if( !interrupted ) interrupted = 1; + stop_age = timer->get_difference(); wdw->unlock_window(); } @@ -151,12 +155,6 @@ int VIconThread::keypress_event(int key) return 1; } -int ViewPopup::button_press_event() -{ - vt->set_view_popup(0); - return 1; -} - bool VIconThread:: visible(VIcon *vicon, int x, int y) { @@ -173,6 +171,7 @@ int ViewPopup::keypress_event() int key = get_keypress(); return vt->keypress_event(key); } + ViewPopup::ViewPopup(VIconThread *vt, VFrame *frame, int x, int y, int w, int h) : BC_Popup(vt->wdw, x, y, w, h, BLACK) { @@ -235,14 +234,13 @@ int VIconThread::del_vicon(VIcon *&vicon) void VIconThread::set_view_popup(VIcon *vicon) { - if( !vicon && this->vicon ) - this->vicon->stop_audio(); this->vicon = vicon; } int VIconThread:: update_view() { + if( viewing ) viewing->stop_audio(); delete view_win; view_win = 0; if( (viewing=vicon) != 0 ) { VFrame *frame = viewing->frame();