DPF

DISTRHO Plugin Framework
Log | Files | Refs | Submodules | README | LICENSE

commit f3d6a10d7505846ecdbac24d60a45f44a9d1c4fa
parent f609f1643c09a90aab4d4481a689a6ee8e9f697a
Author: falkTX <falktx@gmail.com>
Date:   Thu, 20 Nov 2014 06:38:05 +0000

NTK fixes

Diffstat:
Mdgl/ntk/NtkApp.hpp | 2+-
Mdgl/ntk/NtkWindow.hpp | 15+++++++++------
Mdistrho/DistrhoUIMain.cpp | 2++
3 files changed, 12 insertions(+), 7 deletions(-)

diff --git 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 @@ -194,18 +194,21 @@ private: friend class NtkWidget; - static void _idleHandler(void* data) + void idleHandler() { - NtkWindow* const self((NtkWindow*)data); - - for (std::list<IdleCallback*>::iterator it=self->fIdleCallbacks.begin(), ite=self->fIdleCallbacks.end(); it != ite; ++it) + for (std::list<IdleCallback*>::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 @@ -34,6 +34,8 @@ START_NAMESPACE_DGL void NtkApp::NextUI::run() { + const FlScopedLock csl; + if (create) { d_stdout("Creating NTK UI in separate thread...");