Fix playhead position after trim-up-to (#1847).
[dcpomatic.git] / src / wx / timing_panel.cc
index c7268e8a5e71feb2c05e969f0dc215a95113a533..c4234af66396bda8a940d29fda5f529ac04cbff3 100644 (file)
 #include "lib/dcp_content.h"
 #include "lib/ffmpeg_content.h"
 #include <dcp/locale_convert.h>
-#ifdef __WXGTK__
+#include "lib/warnings.h"
+#if defined(__WXGTK20__) && !defined(__WXGTK3__)
+#define TIMING_PANEL_ALIGNMENT_HACK 1
+DCPOMATIC_DISABLE_WARNINGS
 #include <gtk/gtk.h>
+DCPOMATIC_ENABLE_WARNINGS
 #endif
 #include <boost/foreach.hpp>
 #include <set>
@@ -50,6 +54,9 @@ using boost::shared_ptr;
 using boost::weak_ptr;
 using boost::dynamic_pointer_cast;
 using boost::optional;
+#if BOOST_VERSION >= 106100
+using namespace boost::placeholders;
+#endif
 using dcp::locale_convert;
 using namespace dcpomatic;
 
@@ -68,23 +75,23 @@ TimingPanel::TimingPanel (ContentPanel* p, weak_ptr<FilmViewer> viewer)
 
        //// TRANSLATORS: this is an abbreviation for "hours"
        _h_label = new StaticText (this, _("h"), wxDefaultPosition, size, wxALIGN_CENTRE_HORIZONTAL);
-#ifdef DCPOMATIC_LINUX
+#ifdef TIMING_PANEL_ALIGNMENT_HACK
        /* Hack to work around failure to centre text on GTK */
        gtk_label_set_line_wrap (GTK_LABEL(_h_label->GetHandle()), FALSE);
 #endif
        //// TRANSLATORS: this is an abbreviation for "minutes"
        _m_label = new StaticText (this, _("m"), wxDefaultPosition, size, wxALIGN_CENTRE_HORIZONTAL);
-#ifdef DCPOMATIC_LINUX
+#ifdef TIMING_PANEL_ALIGNMENT_HACK
        gtk_label_set_line_wrap (GTK_LABEL (_m_label->GetHandle()), FALSE);
 #endif
        //// TRANSLATORS: this is an abbreviation for "seconds"
        _s_label = new StaticText (this, _("s"), wxDefaultPosition, size, wxALIGN_CENTRE_HORIZONTAL);
-#ifdef DCPOMATIC_LINUX
+#ifdef TIMING_PANEL_ALIGNMENT_HACK
        gtk_label_set_line_wrap (GTK_LABEL(_s_label->GetHandle()), FALSE);
 #endif
        //// TRANSLATORS: this is an abbreviation for "frames"
        _f_label = new StaticText (this, _("f"), wxDefaultPosition, size, wxALIGN_CENTRE_HORIZONTAL);
-#ifdef DCPOMATIC_LINUX
+#ifdef TIMING_PANEL_ALIGNMENT_HACK
        gtk_label_set_line_wrap (GTK_LABEL(_f_label->GetHandle()), FALSE);
 #endif
 
@@ -556,11 +563,11 @@ TimingPanel::trim_start_to_playhead_clicked ()
                }
        }
 
+       fv->set_coalesce_player_changes (false);
+
        if (new_ph) {
                fv->seek (new_ph.get(), true);
        }
-
-       fv->set_coalesce_player_changes (false);
 }
 
 void