From 92bb5e8b74e84ef51ff940359c7448b848de13a0 Mon Sep 17 00:00:00 2001 From: jules Date: Thu, 28 Jan 2016 17:08:15 +0000 Subject: [PATCH] Added an 'includeChildren' parameter to Component::isMouseOverOrDragging --- modules/juce_gui_basics/components/juce_Component.cpp | 8 ++++++-- modules/juce_gui_basics/components/juce_Component.h | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/juce_gui_basics/components/juce_Component.cpp b/modules/juce_gui_basics/components/juce_Component.cpp index 1006434423..f2d827b649 100644 --- a/modules/juce_gui_basics/components/juce_Component.cpp +++ b/modules/juce_gui_basics/components/juce_Component.cpp @@ -2969,14 +2969,18 @@ bool Component::isMouseButtonDown() const return false; } -bool Component::isMouseOverOrDragging() const +bool Component::isMouseOverOrDragging (const bool includeChildren) const { const Array& mouseSources = Desktop::getInstance().getMouseSources(); for (MouseInputSource* mi = mouseSources.begin(), * const e = mouseSources.end(); mi != e; ++mi) - if (mi->getComponentUnderMouse() == this + { + Component* const c = mi->getComponentUnderMouse(); + + if ((c == this || (includeChildren && isParentOf (c))) && (mi->isMouse() || mi->isDragging())) return true; + } return false; } diff --git a/modules/juce_gui_basics/components/juce_Component.h b/modules/juce_gui_basics/components/juce_Component.h index 7100365fdf..de25a5debb 100644 --- a/modules/juce_gui_basics/components/juce_Component.h +++ b/modules/juce_gui_basics/components/juce_Component.h @@ -1768,7 +1768,7 @@ public: This is a handy equivalent to (isMouseOver() || isMouseButtonDown()). @see isMouseOver, isMouseButtonDown, isMouseButtonDownAnywhere */ - bool isMouseOverOrDragging() const; + bool isMouseOverOrDragging (bool includeChildren = false) const; /** Returns true if a mouse button is currently down.