From 35b218b527ecc60c16767690ca4a1d86481a8e3e Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Tue, 25 Nov 2008 22:15:19 +0000 Subject: make Gtkmm2ext::Popup::touch() thread-safe (again; it used to be in the 0.99 era) git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@4258 d708f5d6-7413-0410-9779-e7cbd77b26cf --- libs/gtkmm2ext/popup.cc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/libs/gtkmm2ext/popup.cc b/libs/gtkmm2ext/popup.cc index 0b150eefe1..2d586d0317 100644 --- a/libs/gtkmm2ext/popup.cc +++ b/libs/gtkmm2ext/popup.cc @@ -22,6 +22,7 @@ #include #include +#include using namespace std; using namespace Gtk; @@ -83,9 +84,17 @@ PopUp::remove () } } +#define ENSURE_GUI_THREAD(slot) \ + if (!Gtkmm2ext::UI::instance()->caller_is_ui_thread()) {\ + Gtkmm2ext::UI::instance()->call_slot ((slot));\ + return;\ + } + void PopUp::touch () { + ENSURE_GUI_THREAD (mem_fun (*this, &PopUp::touch)); + if (is_visible ()) { remove (); } else { -- cgit v1.2.3