From e83e076f7d2fff13e2cc7d1f4132fef5d04f10df Mon Sep 17 00:00:00 2001 From: jules Date: Sun, 23 Dec 2012 13:04:54 +0000 Subject: [PATCH] Better always-on-top detection in a few component types. --- modules/juce_gui_basics/juce_gui_basics.cpp | 2 ++ modules/juce_gui_basics/native/juce_win32_FileChooser.cpp | 2 -- modules/juce_gui_basics/windows/juce_AlertWindow.cpp | 2 -- modules/juce_gui_basics/windows/juce_CallOutBox.cpp | 3 +-- modules/juce_gui_basics/windows/juce_DialogWindow.cpp | 4 +--- 5 files changed, 4 insertions(+), 9 deletions(-) diff --git a/modules/juce_gui_basics/juce_gui_basics.cpp b/modules/juce_gui_basics/juce_gui_basics.cpp index 31ef851347..01a6c5b47a 100644 --- a/modules/juce_gui_basics/juce_gui_basics.cpp +++ b/modules/juce_gui_basics/juce_gui_basics.cpp @@ -129,6 +129,8 @@ //============================================================================== namespace juce { + extern bool juce_areThereAnyAlwaysOnTopWindows(); + // START_AUTOINCLUDE components/*.cpp, mouse/*.cpp, keyboard/*.cpp, buttons/*.cpp, // drawables/*.cpp, filebrowser/*.cpp, layout/*.cpp, lookandfeel/*.cpp, diff --git a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp index 66c2a29f47..3d85079798 100644 --- a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp +++ b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp @@ -23,8 +23,6 @@ ============================================================================== */ -extern bool juce_areThereAnyAlwaysOnTopWindows(); - namespace FileChooserHelpers { struct FileChooserCallbackInfo diff --git a/modules/juce_gui_basics/windows/juce_AlertWindow.cpp b/modules/juce_gui_basics/windows/juce_AlertWindow.cpp index 8080e62d7c..1d70d97e17 100644 --- a/modules/juce_gui_basics/windows/juce_AlertWindow.cpp +++ b/modules/juce_gui_basics/windows/juce_AlertWindow.cpp @@ -32,8 +32,6 @@ static juce_wchar getDefaultPasswordChar() noexcept #endif } -extern bool juce_areThereAnyAlwaysOnTopWindows(); - //============================================================================== AlertWindow::AlertWindow (const String& title, const String& message, diff --git a/modules/juce_gui_basics/windows/juce_CallOutBox.cpp b/modules/juce_gui_basics/windows/juce_CallOutBox.cpp index c3c68aed2c..b9bc897858 100644 --- a/modules/juce_gui_basics/windows/juce_CallOutBox.cpp +++ b/modules/juce_gui_basics/windows/juce_CallOutBox.cpp @@ -36,8 +36,7 @@ CallOutBox::CallOutBox (Component& c, const Rectangle& area, Component* con } else { - if (! JUCEApplication::isStandaloneApp()) - setAlwaysOnTop (true); // for a plugin, make it always-on-top because the host windows are often top-level + setAlwaysOnTop (juce_areThereAnyAlwaysOnTopWindows()); updatePosition (area, Desktop::getInstance().getDisplays() .getDisplayContaining (area.getCentre()).userArea); diff --git a/modules/juce_gui_basics/windows/juce_DialogWindow.cpp b/modules/juce_gui_basics/windows/juce_DialogWindow.cpp index d1f1a4d870..0631faee69 100644 --- a/modules/juce_gui_basics/windows/juce_DialogWindow.cpp +++ b/modules/juce_gui_basics/windows/juce_DialogWindow.cpp @@ -70,9 +70,7 @@ public: options.escapeKeyTriggersCloseButton, true) { setUsingNativeTitleBar (options.useNativeTitleBar); - - if (! JUCEApplication::isStandaloneApp()) - setAlwaysOnTop (true); // for a plugin, make it always-on-top because the host windows are often top-level + setAlwaysOnTop (juce_areThereAnyAlwaysOnTopWindows()); if (options.content.willDeleteObject()) setContentOwned (options.content.release(), true);