mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-11 23:54:18 +00:00
Added iterator access to Desktop's list of mouse sources.
This commit is contained in:
parent
6045915256
commit
b3fd5cb8a3
5 changed files with 22 additions and 18 deletions
|
|
@ -818,14 +818,13 @@ void MidiKeyboardComponent::timerCallback()
|
|||
|
||||
if (shouldCheckMousePos)
|
||||
{
|
||||
Desktop& desktop = Desktop::getInstance();
|
||||
const OwnedArray<MouseInputSource>& mouseSources = Desktop::getInstance().getMouseSources();
|
||||
|
||||
for (int i = desktop.getNumMouseSources(); --i >= 0;)
|
||||
for (MouseInputSource** i = mouseSources.begin(), ** const e = mouseSources.end(); i != e; ++i)
|
||||
{
|
||||
MouseInputSource* source = desktop.getMouseSource (i);
|
||||
jassert (source != nullptr);
|
||||
updateNoteUnderMouse (getLocalPoint (nullptr, source->getScreenPosition()),
|
||||
source->isDragging(), source->getIndex());
|
||||
const MouseInputSource& source = **i;
|
||||
updateNoteUnderMouse (getLocalPoint (nullptr, source.getScreenPosition()),
|
||||
source.isDragging(), source.getIndex());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -221,13 +221,13 @@ public:
|
|||
Desktop& desktop = Desktop::getInstance();
|
||||
int numMiceDown = 0;
|
||||
|
||||
for (int i = desktop.getNumMouseSources(); --i >= 0;)
|
||||
{
|
||||
MouseInputSource& source = *desktop.getMouseSource(i);
|
||||
const OwnedArray<MouseInputSource>& mouseSources = desktop.getMouseSources();
|
||||
|
||||
if (source.isDragging())
|
||||
for (MouseInputSource** i = mouseSources.begin(), ** const e = mouseSources.end(); i != e; ++i)
|
||||
{
|
||||
if ((*i)->isDragging())
|
||||
{
|
||||
source.triggerFakeMove();
|
||||
(*i)->triggerFakeMove();
|
||||
++numMiceDown;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -242,6 +242,9 @@ public:
|
|||
*/
|
||||
MouseInputSource* getMouseSource (int index) const noexcept { return mouseSources [index]; }
|
||||
|
||||
/** Provides access to the array of mouse sources, for iteration. */
|
||||
const OwnedArray<MouseInputSource>& getMouseSources() const { return mouseSources; }
|
||||
|
||||
/** Returns the main mouse input device that the system is using.
|
||||
@see getNumMouseSources()
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -1033,8 +1033,10 @@ public:
|
|||
{
|
||||
mouseWasHidden = false;
|
||||
|
||||
for (int i = Desktop::getInstance().getNumMouseSources(); --i >= 0;)
|
||||
Desktop::getInstance().getMouseSource(i)->enableUnboundedMouseMovement (false);
|
||||
const OwnedArray<MouseInputSource>& mouseSources = Desktop::getInstance().getMouseSources();
|
||||
|
||||
for (MouseInputSource** i = mouseSources.begin(), ** const e = mouseSources.end(); i != e; ++i)
|
||||
(*i)->enableUnboundedMouseMovement (false);
|
||||
|
||||
const double pos = sliderBeingDragged == 2 ? getMaxValue()
|
||||
: (sliderBeingDragged == 1 ? getMinValue()
|
||||
|
|
|
|||
|
|
@ -367,14 +367,14 @@ private:
|
|||
|
||||
static bool isMouseDraggingInChildCompOf (Component* const comp)
|
||||
{
|
||||
Desktop& desktop = Desktop::getInstance();
|
||||
const OwnedArray<MouseInputSource>& mouseSources = Desktop::getInstance().getMouseSources();
|
||||
|
||||
for (int i = desktop.getNumMouseSources(); --i >= 0;)
|
||||
for (MouseInputSource** i = mouseSources.begin(), ** const e = mouseSources.end(); i != e; ++i)
|
||||
{
|
||||
MouseInputSource* const source = desktop.getMouseSource(i);
|
||||
MouseInputSource& source = **i;
|
||||
|
||||
if (source->isDragging())
|
||||
if (Component* const underMouse = source->getComponentUnderMouse())
|
||||
if (source.isDragging())
|
||||
if (Component* const underMouse = source.getComponentUnderMouse())
|
||||
if (comp == underMouse || comp->isParentOf (underMouse))
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue