X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.1%2Fplugins%2Ffindobj%2Ffindobjwindow.C;h=e1ed25c5b0e6f18ad8f056ee0ade9f68f9e0617f;hb=8e69e9e7ab87fd5c273ce30a05c9973e786467d9;hp=2f5cd7a2b4725b482e1c6a396de81a5a1630b250;hpb=7fd85fb66168f6b518c5f2d73e04036e87faa0e1;p=goodguy%2Fcinelerra.git diff --git a/cinelerra-5.1/plugins/findobj/findobjwindow.C b/cinelerra-5.1/plugins/findobj/findobjwindow.C index 2f5cd7a2..e1ed25c5 100644 --- a/cinelerra-5.1/plugins/findobj/findobjwindow.C +++ b/cinelerra-5.1/plugins/findobj/findobjwindow.C @@ -22,6 +22,8 @@ #include "bcdisplayinfo.h" #include "clip.h" #include "dragcheckbox.h" +#include "edl.h" +#include "edlsession.h" #include "language.h" #include "findobj.h" #include "findobjwindow.h" @@ -533,7 +535,8 @@ int FindObjDragScene::handle_event() } Track *FindObjDragScene::get_drag_track() { - return plugin->server->plugin->track; + return !plugin->server->plugin ? 0 : + plugin->server->plugin->track; } int64_t FindObjDragScene::get_drag_position() { @@ -543,7 +546,8 @@ void FindObjDragScene::update_gui() { bound(); Track *track = get_drag_track(); - int trk_w = track->track_w, trk_h = track->track_h; + int trk_w = track ? track->track_w : plugin->get_edl()->session->output_w; + int trk_h = track ? track->track_h : plugin->get_edl()->session->output_h; float ctr_x = drag_x + drag_w/2, ctr_y = drag_y + drag_h/2; gui->scene_x->update( plugin->config.scene_x = 100. * ctr_x / trk_w ); gui->scene_y->update( plugin->config.scene_y = 100. * ctr_y / trk_h ); @@ -573,7 +577,8 @@ int FindObjDragObject::handle_event() } Track *FindObjDragObject::get_drag_track() { - return plugin->server->plugin->track; + return !plugin->server->plugin ? 0 : + plugin->server->plugin->track; } int64_t FindObjDragObject::get_drag_position() { @@ -583,7 +588,8 @@ void FindObjDragObject::update_gui() { bound(); Track *track = get_drag_track(); - int trk_w = track->track_w, trk_h = track->track_h; + int trk_w = track ? track->track_w : plugin->get_edl()->session->output_w; + int trk_h = track ? track->track_h : plugin->get_edl()->session->output_h; float ctr_x = drag_x + drag_w/2, ctr_y = drag_y + drag_h/2; gui->object_x->update( plugin->config.object_x = 100. * ctr_x / trk_w ); gui->object_y->update( plugin->config.object_y = 100. * ctr_y / trk_h ); @@ -613,7 +619,8 @@ int FindObjDragReplace::handle_event() } Track *FindObjDragReplace::get_drag_track() { - return plugin->server->plugin->track; + return !plugin->server->plugin ? 0 : + plugin->server->plugin->track; } int64_t FindObjDragReplace::get_drag_position() { @@ -623,7 +630,8 @@ void FindObjDragReplace::update_gui() { bound(); Track *track = get_drag_track(); - int trk_w = track->track_w, trk_h = track->track_h; + int trk_w = track ? track->track_w : plugin->get_edl()->session->output_w; + int trk_h = track ? track->track_h : plugin->get_edl()->session->output_h; float ctr_x = drag_x + drag_w/2, ctr_y = drag_y + drag_h/2; gui->replace_x->update( plugin->config.replace_x = 100. * ctr_x / trk_w ); gui->replace_y->update( plugin->config.replace_y = 100. * ctr_y / trk_h );