X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fcinelerra%2Fresizetrackthread.C;h=a9548455b2c86b28297ebb546a41668db7bf5d70;hb=8fe9a22b4600301fee74b27bd8e0c44f9d681079;hp=1c2eadc841c0ecd02f089a7b40f81e7469037301;hpb=21c2e6b36d6a96c2f662a89459d607b5a387f4eb;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.1/cinelerra/resizetrackthread.C b/cinelerra-5.1/cinelerra/resizetrackthread.C index 1c2eadc8..a9548455 100644 --- a/cinelerra-5.1/cinelerra/resizetrackthread.C +++ b/cinelerra-5.1/cinelerra/resizetrackthread.C @@ -60,6 +60,12 @@ ResizeVTrackThread::~ResizeVTrackThread() void ResizeVTrackThread::start_window(int w, int h, int w1, int h1) { + if( window && running() ) { + window->lock_window(); + window->raise_window(); + window->unlock_window(); + return; + } this->w = w; this->h = h; this->w1 = w1; this->h1 = h1; w_scale = h_scale = 1; @@ -69,24 +75,18 @@ void ResizeVTrackThread::start_window(int w, int h, int w1, int h1) void ResizeVTrackThread::run() { - ResizeVTrackWindow *window = this->window = - new ResizeVTrackWindow(mwindow, - this, + window = new ResizeVTrackWindow(mwindow, this, mwindow->gui->get_abs_cursor_x(1), mwindow->gui->get_abs_cursor_y(1)); window->create_objects(); int result = window->run_window(); - this->window = 0; - delete window; - - if(!result) - { + delete window; window = 0; + if(!result) { update(); } - if(((w % 4) || - (h % 4)) && + if(((w % 4) || (h % 4)) && mwindow->edl->session->playback_config->vconfig->driver == PLAYBACK_X11_GL) { MainError::show_error( @@ -299,7 +299,8 @@ void ResizeTrackThread::start_window(Track *track) void ResizeTrackThread::update() { - mwindow->resize_track(track, w, h); + if( mwindow->edl->tracks->track_exists(track) ) + mwindow->resize_track(track, w, h); } @@ -350,7 +351,8 @@ ResizeAssetButton::~ResizeAssetButton() int ResizeAssetButton::handle_event() { - resize_asset_thread = new ResizeAssetThread(fwindow); + if( !resize_asset_thread ) + resize_asset_thread = new ResizeAssetThread(fwindow); resize_asset_thread->start_window(fwindow->asset_edit->changed_params); return 1; }