commit 44ea88dd80c726e118ffd2fc88362324134b3f90
parent f7c4fd4b234479b4e99be80ced9e61cd1ef4c080
Author: falkTX <falktx@falktx.com>
Date: Wed, 25 Aug 2021 09:14:04 +0100
Fix embed external ui closing too early
Signed-off-by: falkTX <falktx@falktx.com>
Diffstat:
2 files changed, 14 insertions(+), 4 deletions(-)
diff --git a/distrho/extra/ExternalWindow.hpp b/distrho/extra/ExternalWindow.hpp
@@ -79,10 +79,7 @@ public:
virtual bool isQuitting() const
{
- if (ext.inUse)
- return ext.isQuitting;
-
- return !isVisible();
+ return ext.inUse ? ext.isQuitting : pData.isQuitting;
}
/**
@@ -90,6 +87,7 @@ public:
*/
virtual void close()
{
+ pData.isQuitting = true;
hide();
if (ext.inUse)
@@ -436,6 +434,7 @@ private:
uint height;
double scaleFactor;
String title;
+ bool isQuitting;
bool visible;
PrivateData()
@@ -445,6 +444,7 @@ private:
height(1),
scaleFactor(1.0),
title(),
+ isQuitting(false),
visible(false) {}
} pData;
diff --git a/examples/EmbedExternalUI/EmbedExternalExampleUI.cpp b/examples/EmbedExternalUI/EmbedExternalExampleUI.cpp
@@ -125,6 +125,16 @@ protected:
/* --------------------------------------------------------------------------------------------------------
* External Window overrides */
+ uintptr_t getNativeWindowHandle() const noexcept override
+ {
+#if defined(DISTRHO_OS_MAC)
+#elif defined(DISTRHO_OS_WINDOWS)
+#else
+ return (uintptr_t)fWindow;
+#endif
+ return 0;
+ }
+
void titleChanged(const char* const title) override
{
d_stdout("visibilityChanged %s", title);