Bail early if nothing can be referenced from this content.
[dcpomatic.git] / src / wx / timing_panel.cc
index f251e3c93679fbe45bbcbb07ab30b303caa8e9be..31b1605421c6258e25a2de8bf6a6bb744d1eb40e 100644 (file)
@@ -65,6 +65,13 @@ TimingPanel::TimingPanel (ContentPanel* p, weak_ptr<FilmViewer> viewer)
        : ContentSubPanel (p, S_("Timing|Timing"))
        , _viewer (viewer)
        , _film_content_changed_suspender (boost::bind(&TimingPanel::film_content_changed, this, _1))
+{
+
+}
+
+
+void
+TimingPanel::create ()
 {
        wxSize size = TimecodeBase::size (this);
 
@@ -123,6 +130,8 @@ TimingPanel::TimingPanel (ContentPanel* p, weak_ptr<FilmViewer> viewer)
 
        setup_sensitivity ();
        add_to_grid ();
+
+       _sizer->Layout ();
 }
 
 void
@@ -403,9 +412,8 @@ TimingPanel::play_length_changed ()
        Suspender::Block bl = _film_content_changed_suspender.block ();
        for (auto i: _parent->selected()) {
                FrameRateChange const frc = _parent->film()->active_frame_rate_change (i->position ());
-               i->set_trim_end (
-                       ContentTime (max(DCPTime(), i->full_length(_parent->film()) - play_length), frc) - i->trim_start()
-                       );
+               auto dcp = max(DCPTime(), i->full_length(_parent->film()) - play_length);
+               i->set_trim_end (max(ContentTime(), ContentTime(dcp, frc) - i->trim_start()));
        }
 }