DPF

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

commit 7f65db5dd30ffd11525c5e1e15d6b3bb3e72f85c
parent a106c2b8cece8b5b25100d51ca7d86ebda649157
Author: falkTX <falktx@falktx.com>
Date:   Sat, 28 May 2022 15:16:34 +0100

Bring back Window::setTransientParent, used in Carla

Signed-off-by: falkTX <falktx@falktx.com>

Diffstat:
Mdgl/Window.hpp | 8++++++++
Mdgl/src/Window.cpp | 12+++++-------
Mdistrho/src/DistrhoUIInternal.hpp | 8+++-----
3 files changed, 16 insertions(+), 12 deletions(-)

diff --git a/dgl/Window.hpp b/dgl/Window.hpp @@ -442,6 +442,14 @@ public: bool automaticallyScale = false, bool resizeNowIfAutoScaling = true); + /** + Set the transient parent of the window. + + Set this for transient children like dialogs, to have them properly associated with their parent window. + This should be not be called for embed windows, or after making the window visible. + */ + void setTransientParent(uintptr_t transientParentWindowHandle); + /** DEPRECATED Use isIgnoringKeyRepeat(). */ DISTRHO_DEPRECATED_BY("isIgnoringKeyRepeat()") inline bool getIgnoringKeyRepeat() const noexcept { return isIgnoringKeyRepeat(); } diff --git a/dgl/src/Window.cpp b/dgl/src/Window.cpp @@ -465,6 +465,11 @@ void Window::setGeometryConstraints(uint minimumWidth, } } +void Window::setTransientParent(const uintptr_t transientParentWindowHandle) +{ + puglSetTransientParent(pData->view, transientParentWindowHandle); +} + std::vector<ClipboardDataOffer> Window::getClipboardDataOfferTypes() { std::vector<ClipboardDataOffer> offerTypes; @@ -521,13 +526,6 @@ void Window::onFileSelected(const char*) } #endif -#if 0 -void Window::setTransientWinId(const uintptr_t winId) -{ - puglSetTransientFor(pData->view, winId); -} -#endif - // ----------------------------------------------------------------------- END_NAMESPACE_DGL diff --git a/distrho/src/DistrhoUIInternal.hpp b/distrho/src/DistrhoUIInternal.hpp @@ -312,14 +312,12 @@ public: uiData->window->setTitle(uiTitle); } - void setWindowTransientWinId(const uintptr_t winId) + void setWindowTransientWinId(const uintptr_t transientParentWindowHandle) { #if DISTRHO_PLUGIN_HAS_EXTERNAL_UI - ui->setTransientWindowId(winId); -#elif 0 /* TODO */ - glWindow.setTransientWinId(winId); + ui->setTransientWindowId(transientParentWindowHandle); #else - (void)winId; + uiData->window->setTransientParent(transientParentWindowHandle); #endif }