Browse Source

Made sure that CalloutBoxes disappear when clicking on another app.

tags/2021-05-28
jules 12 years ago
parent
commit
530dca28a5
1 changed files with 12 additions and 4 deletions
  1. +12
    -4
      modules/juce_gui_basics/windows/juce_CallOutBox.cpp

+ 12
- 4
modules/juce_gui_basics/windows/juce_CallOutBox.cpp View File

@@ -48,8 +48,11 @@ CallOutBox::~CallOutBox()
{
}
enum { callOutBoxDismissCommandId = 0x4f83a04b };
//==============================================================================
class CallOutBoxCallback : public ModalComponentManager::Callback
class CallOutBoxCallback : public ModalComponentManager::Callback,
private Timer
{
public:
CallOutBoxCallback (Component* c, const Rectangle<int>& area, Component* parent)
@@ -57,9 +60,16 @@ public:
{
callout.setVisible (true);
callout.enterModalState (true, this);
startTimer (200);
}
void modalStateFinished (int) {}
void modalStateFinished (int) override {}
void timerCallback() override
{
if (! Process::isForegroundProcess())
callout.postCommandMessage (callOutBoxDismissCommandId);
}
ScopedPointer<Component> content;
CallOutBox callout;
@@ -110,8 +120,6 @@ bool CallOutBox::hitTest (int x, int y)
return outline.contains ((float) x, (float) y);
}
enum { callOutBoxDismissCommandId = 0x4f83a04b };
void CallOutBox::inputAttemptWhenModal()
{
const Point<int> mousePos (getMouseXYRelative() + getBounds().getPosition());


Loading…
Cancel
Save