Fix failure to remove markers when the checkbox is unticked.
[dcpomatic.git] / src / wx / timing_panel.cc
index ecf55640dc3f7cd5655ea482cfe639c4920293c1..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()));
        }
 }
 
@@ -425,7 +433,7 @@ TimingPanel::content_selection_changed ()
 void
 TimingPanel::film_changed (Film::Property p)
 {
-       if (p == Film::VIDEO_FRAME_RATE) {
+       if (p == Film::Property::VIDEO_FRAME_RATE) {
                update_full_length ();
                update_play_length ();
        }