From d43aadb0bbb5cbdebbc5c95cb3065ed0aa49296a Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 29 Apr 2015 15:22:29 +0100 Subject: [PATCH] Hand-apply 077d2abb480a883119783db3f957f175e22e543b from master; stop more flickering when dragging in the timeline in OS X. --- ChangeLog | 5 +++++ TO_PORT | 2 -- src/wx/video_panel.cc | 20 ++++++++++++-------- src/wx/wx_util.cc | 8 ++++++++ src/wx/wx_util.h | 1 + 5 files changed, 26 insertions(+), 10 deletions(-) diff --git a/ChangeLog b/ChangeLog index 183ebc341..c6ba37bdf 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2015-04-29 c.hetherington + + * Hand-apply 291179175729b62e17a9c322cd27ae134d1310d9 from master; + stop more flickering when dragging in the timeline on OS X. + 2015-04-22 c.hetherington * Add P3 colour conversion preset. diff --git a/TO_PORT b/TO_PORT index b0957b305..af1f4d145 100644 --- a/TO_PORT +++ b/TO_PORT @@ -1,5 +1,3 @@ - -291179175729b62e17a9c322cd27ae134d1310d9 8d92cce7d2885afa13ee4cb6f546dbf43942124b c994839239e84a1f62865ed82fdc090900a66b03 1114df4c0d2167f6b7b394bfbf85890cd0a4a3e3 diff --git a/src/wx/video_panel.cc b/src/wx/video_panel.cc index 67c369de2..bc2faf1b3 100644 --- a/src/wx/video_panel.cc +++ b/src/wx/video_panel.cc @@ -246,16 +246,20 @@ VideoPanel::film_content_changed (int property) setup_description (); } else if (property == VideoContentProperty::COLOUR_CONVERSION) { if (!vcs) { - _colour_conversion->SetLabel (wxT ("")); + checked_set (_colour_conversion, wxT ("")); } else if (vcs->colour_conversion ()) { optional preset = vcs->colour_conversion().get().preset (); vector cc = Config::instance()->colour_conversions (); - _colour_conversion->SetLabel (preset ? std_to_wx (cc[preset.get()].name) : _("Custom")); + if (preset) { + checked_set (_colour_conversion, std_to_wx (cc[preset.get()].name)); + } else { + checked_set (_colour_conversion, _("Custom")); + } _enable_colour_conversion->SetValue (true); _colour_conversion->Enable (true); _colour_conversion_button->Enable (true); } else { - _colour_conversion->SetLabel (_("None")); + checked_set (_colour_conversion, _("None")); _enable_colour_conversion->SetValue (false); _colour_conversion->Enable (false); _colour_conversion_button->Enable (false); @@ -264,12 +268,12 @@ VideoPanel::film_content_changed (int property) if (fcs) { string p = Filter::ffmpeg_string (fcs->filters ()); if (p.empty ()) { - _filters->SetLabel (_("None")); + checked_set (_filters, _("None")); } else { if (p.length() > 25) { p = p.substr (0, 25) + "..."; } - _filters->SetLabel (std_to_wx (p)); + checked_set (_filters, p); } } } else if (property == VideoContentProperty::VIDEO_FADE_IN) { @@ -317,10 +321,10 @@ VideoPanel::setup_description () { VideoContentList vc = _parent->selected_video (); if (vc.empty ()) { - _description->SetLabel (""); + checked_set (_description, wxT ("")); return; } else if (vc.size() > 1) { - _description->SetLabel (_("Multiple content selected")); + checked_set (_description, _("Multiple content selected")); return; } @@ -331,7 +335,7 @@ VideoPanel::setup_description () d += "\n "; } - _description->SetLabel (std_to_wx (d)); + checked_set (_description, d); _sizer->Layout (); } diff --git a/src/wx/wx_util.cc b/src/wx/wx_util.cc index 0119799d2..cd3d39c67 100644 --- a/src/wx/wx_util.cc +++ b/src/wx/wx_util.cc @@ -195,6 +195,14 @@ checked_set (wxStaticText* widget, string value) } } +void +checked_set (wxStaticText* widget, wxString value) +{ + if (widget->GetLabel() != value) { + widget->SetLabel (value); + } +} + void checked_set (wxCheckBox* widget, bool value) { diff --git a/src/wx/wx_util.h b/src/wx/wx_util.h index eeb3fee43..f55ecbd52 100644 --- a/src/wx/wx_util.h +++ b/src/wx/wx_util.h @@ -75,6 +75,7 @@ extern void checked_set (wxTextCtrl* widget, std::string value); extern void checked_set (wxCheckBox* widget, bool value); extern void checked_set (wxRadioButton* widget, bool value); extern void checked_set (wxStaticText* widget, std::string value); +extern void checked_set (wxStaticText* widget, wxString value); extern int wx_get (wxChoice* widget); extern int wx_get (wxSpinCtrl* widget); -- 2.30.2