From f3d6a10d7505846ecdbac24d60a45f44a9d1c4fa Mon Sep 17 00:00:00 2001 From: falkTX Date: Thu, 20 Nov 2014 06:38:30 +0000 Subject: [PATCH] NTK fixes --- dgl/ntk/NtkApp.hpp | 2 +- dgl/ntk/NtkWindow.hpp | 15 +++++++++------ distrho/DistrhoUIMain.cpp | 2 ++ 3 files changed, 12 insertions(+), 7 deletions(-) diff --git a/dgl/ntk/NtkApp.hpp b/dgl/ntk/NtkApp.hpp index c820810d..e648a9c7 100644 --- a/dgl/ntk/NtkApp.hpp +++ b/dgl/ntk/NtkApp.hpp @@ -80,7 +80,7 @@ public: fThreadInitialized(false) { #ifdef DISTRHO_OS_LINUX - //XInitThreads(); + XInitThreads(); #endif startThread(); diff --git a/dgl/ntk/NtkWindow.hpp b/dgl/ntk/NtkWindow.hpp index 436f5b2f..2857ee45 100644 --- a/dgl/ntk/NtkWindow.hpp +++ b/dgl/ntk/NtkWindow.hpp @@ -194,18 +194,21 @@ private: friend class NtkWidget; - static void _idleHandler(void* data) + void idleHandler() { - NtkWindow* const self((NtkWindow*)data); - - for (std::list::iterator it=self->fIdleCallbacks.begin(), ite=self->fIdleCallbacks.end(); it != ite; ++it) + for (std::list::iterator it=fIdleCallbacks.begin(), ite=fIdleCallbacks.end(); it != ite; ++it) { IdleCallback* const idleCallback(*it); idleCallback->idleCallback(); } - if (fIdleCallbacks.size() > 0 && ! self->getApp().isQuiting()) - Fl::repeat_timeout(0.030, _idleHandler, self); + if (fIdleCallbacks.size() > 0 && ! getApp().isQuiting()) + Fl::repeat_timeout(0.030, _idleHandler, this); + } + + static void _idleHandler(void* data) + { + ((NtkWindow*)data)->idleHandler(); } DISTRHO_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR(NtkWindow) diff --git a/distrho/DistrhoUIMain.cpp b/distrho/DistrhoUIMain.cpp index 3bc09713..c3b4b4e1 100644 --- a/distrho/DistrhoUIMain.cpp +++ b/distrho/DistrhoUIMain.cpp @@ -34,6 +34,8 @@ START_NAMESPACE_DGL void NtkApp::NextUI::run() { + const FlScopedLock csl; + if (create) { d_stdout("Creating NTK UI in separate thread...");