Button clicked issue with juce 1.54.27

I just updated my juce library from 1.53.94 to 1.54.27 and i noticed that ButtonClicked is no longer called on Reaper 64. [latest version 4.12, on Mac OSX 10.6]
It must come from the Component::isMouseOver() function that used to return true before and that returns false now.

Version 1.53.94:

[code]bool Component::isMouseOver (const bool includeChildren) const
if (flags.mouseOverFlag)
return true;

if (includeChildren)
    Desktop& desktop = Desktop::getInstance();

    for (int i = desktop.getNumMouseSources(); --i >= 0;)
        Component* const c = desktop.getMouseSource(i)->getComponentUnderMouse();

        if (isParentOf (c) && c->flags.mouseOverFlag) // (mouseOverFlag checked in case it's being dragged outside the comp)
            return true;

return false;


Version 1.54.27:

bool Component::isMouseOver (const bool includeChildren) const
const Desktop& desktop = Desktop::getInstance();

for (int i = desktop.getNumMouseSources(); --i >= 0;)
    const MouseInputSource* const mi = desktop.getMouseSource(i);

    Component* const c = mi->getComponentUnderMouse();

    if ((c == this || (includeChildren && isParentOf (c)))
          && c->reallyContains (c->getLocalPoint (nullptr, mi->getScreenPosition()), false))
        return true;

return false;


reallyContains should return true but doesn’t, consequently none of my buttons work… so it’s a bit annoying.

In Cubase 32 or 64 bit and Repaer 32-bit, it works though. Very odd

Very odd. Maybe they’re buggering-about with the view coordinates or something?

Can you see whether it’s reallyContains() that’s failing, or whether it’s just being given the wrong coordinates to check?

It seems to me that the coordinates checked in reallyContains are wrong.
When i check twice the coordinates for a same button, the values are completly different.
So I guess they are relative to something but not to the component.

I confirm the issue with reaper 64-bit on macos – it happens only with the VST, not with the 64-bit audio unit.

The Y coordinate of the localpoint computed in Component::isMouseOver seems to be false:

Button::mouseDown: x=123 8
Component::isMouseOver: getScreenPosition=1485 155 -> localPoint: 123 34 -> reallyContains: 0

Hmm, sounds like it’s being offset by the size of a title bar… I think I may actually have changed the way it converts global->local coords since 1.54 though - could be worth trying the modules branch in case this is already sorted.

Oh I forgot to mention it, but I tested with the latest modules branch, so the issue is still there

Is this one sorted out? I have the same issue with my 64 bits VST version of my plugin.


[quote=“Harrie Munnik”]Is this one sorted out? I have the same issue with my 64 bits VST version of my plugin.

I just tell people to use the 64-bit AU, which works reasonably stable in Reaper 64/OSX.

Sean Costello

No, it’s not!
I updated my Juce library to 2.0.16, and the problem is still there!
I hoped it would be ok by now!
It’s been more than two months that I noticed it.
Hey Jules, are you planning to fix it soon ?

Probably related to this