X-Git-Url: https://git.cinelerra-gg.org/git/?p=goodguy%2Fcinelerra.git;a=blobdiff_plain;f=cinelerra-5.1%2Fguicast%2Fvicon.C;h=f27791f94c06767bd12f0fc318093e2842319685;hp=751d61e4d38c75266c7d4e9af5f7b7dcfc80a012;hb=cb1a1530246ad67fb9be9aa2dbba5b88eb63e933;hpb=6226b2633b6460755969cb624550854669b1c79f diff --git a/cinelerra-5.1/guicast/vicon.C b/cinelerra-5.1/guicast/vicon.C index 751d61e4..f27791f9 100644 --- a/cinelerra-5.1/guicast/vicon.C +++ b/cinelerra-5.1/guicast/vicon.C @@ -193,7 +193,7 @@ int ViewPopup::keypress_event() } -ViewPopup::ViewPopup(VIconThread *vt, VFrame *frame, int x, int y, int w, int h) +ViewPopup::ViewPopup(VIconThread *vt, int x, int y, int w, int h) : BC_Popup(vt->wdw, x, y, w, h, BLACK) { this->vt = vt; @@ -204,7 +204,7 @@ ViewPopup::~ViewPopup() vt->wdw->set_active_subwindow(0); } -ViewPopup *VIconThread::new_view_window(VFrame *frame) +ViewPopup *VIconThread::new_view_window() { BC_WindowBase *parent = wdw->get_parent(); XineramaScreenInfo *info = parent->get_xinerama_info(-1); @@ -213,23 +213,13 @@ ViewPopup *VIconThread::new_view_window(VFrame *frame) int vx = viewing->get_vx(), rx = 0; int vy = viewing->get_vy(), ry = 0; wdw->get_root_coordinates(vx, vy, &rx, &ry); - rx += (rx >= cx ? -view_w : viewing->w); - ry += (ry >= cy ? -view_h : viewing->h); - ViewPopup *vwin = new ViewPopup(this, frame, rx, ry, view_w, view_h); + rx += (rx >= cx ? -view_w+viewing->w/4 : viewing->w-viewing->w/4); + ry += (ry >= cy ? -view_h+viewing->h/4 : viewing->h-viewing->h/4); + ViewPopup *vwin = new ViewPopup(this, rx, ry, view_w, view_h); wdw->set_active_subwindow(vwin); return vwin; } -int ViewPopup::zoom_scale(int dir) -{ - int view_h = vt->view_h + dir*vt->view_h/10 + dir; - bclamp(view_h, 16,512); - vt->view_h = view_h; - vt->view_w = view_h * vt->vw/vt->vh; - vt->stop_viewing(); - return 1; -} - void VIconThread:: reset_images() @@ -279,8 +269,9 @@ update_view() if( viewing ) viewing->stop_audio(); delete view_win; view_win = 0; if( (viewing=vicon) != 0 ) { - VFrame *frame = viewing->frame(); - view_win = new_view_window(frame); + view_win = new_view_window(); + view_win->draw_vframe(viewing->frame()); + view_win->flash(0); view_win->show_window(); vicon->start_audio(); } @@ -288,6 +279,17 @@ update_view() return 1; } +int VIconThread::zoom_scale(int dir) +{ + int view_h = this->view_h; + view_h += dir*view_h/10 + dir; + bclamp(view_h, 16,512); + this->view_h = view_h; + this->view_w = view_h * vw/vh; + stop_viewing(); + return 1; +} + void VIconThread:: draw_images()