From edcebe40006a8d456e8aa8e38d930e1a327b0546 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 23 Nov 2016 11:40:48 +0000 Subject: [PATCH] Attempt to fix crash on hitting enter in the crop control on Windows (#1009). --- ChangeLog | 4 ++++ src/wx/content_menu.cc | 7 +++++++ src/wx/content_menu.h | 1 + 3 files changed, 12 insertions(+) diff --git a/ChangeLog b/ChangeLog index 3a3a5f5a0..cf42da9d5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2016-11-23 Carl Hetherington + + * Fix crash on pressing enter in a crop control on Windows (#1009). + 2016-11-16 Carl Hetherington * Version 2.10.1 released. diff --git a/src/wx/content_menu.cc b/src/wx/content_menu.cc index 14632d984..df8fcfd13 100644 --- a/src/wx/content_menu.cc +++ b/src/wx/content_menu.cc @@ -66,6 +66,7 @@ enum { ContentMenu::ContentMenu (wxWindow* p) : _menu (new wxMenu) , _parent (p) + , _pop_up_open (false) { _repeat = _menu->Append (ID_repeat, _("Repeat...")); _join = _menu->Append (ID_join, _("Join")); @@ -164,7 +165,9 @@ ContentMenu::popup (weak_ptr film, ContentList c, TimelineContentViewList _remove->Enable (!_content.empty ()); + _pop_up_open = true; _parent->PopupMenu (_menu, p); + _pop_up_open = false; } void @@ -421,6 +424,10 @@ ContentMenu::properties () void ContentMenu::cpl_selected (wxCommandEvent& ev) { + if (!_pop_up_open) { + return; + } + DCPOMATIC_ASSERT (!_content.empty ()); shared_ptr dcp = dynamic_pointer_cast (_content.front ()); DCPOMATIC_ASSERT (dcp); diff --git a/src/wx/content_menu.h b/src/wx/content_menu.h index 84daa71a5..f0f1ae39f 100644 --- a/src/wx/content_menu.h +++ b/src/wx/content_menu.h @@ -56,6 +56,7 @@ private: /** Film that we are working with; set up by popup() */ boost::weak_ptr _film; wxWindow* _parent; + bool _pop_up_open; ContentList _content; TimelineContentViewList _views; wxMenuItem* _repeat; -- 2.30.2