Browse Source

Fixed some pen input source issues

tags/2021-05-28
ed 6 years ago
parent
commit
3d8acd864a
3 changed files with 6 additions and 6 deletions
  1. +4
    -4
      modules/juce_gui_basics/buttons/juce_Button.cpp
  2. +1
    -1
      modules/juce_gui_basics/buttons/juce_Button.h
  3. +1
    -1
      modules/juce_gui_basics/components/juce_Component.cpp

+ 4
- 4
modules/juce_gui_basics/buttons/juce_Button.cpp View File

@@ -461,7 +461,7 @@ void Button::mouseUp (const MouseEvent& e)
{
const bool wasDown = isDown();
const bool wasOver = isOver();
updateState (isMouseOrTouchOver (e), false);
updateState (isMouseSourceOver (e), false);
if (wasDown && wasOver && ! triggerOnMouseDown)
{
@@ -475,15 +475,15 @@ void Button::mouseUp (const MouseEvent& e)
void Button::mouseDrag (const MouseEvent& e)
{
auto oldState = buttonState;
updateState (isMouseOrTouchOver (e), true);
updateState (isMouseSourceOver (e), true);
if (autoRepeatDelay >= 0 && buttonState != oldState && isDown())
callbackHelper->startTimer (autoRepeatSpeed);
}
bool Button::isMouseOrTouchOver (const MouseEvent& e)
bool Button::isMouseSourceOver (const MouseEvent& e)
{
if (e.source.isTouch())
if (e.source.isTouch() || e.source.isPen())
return getLocalBounds().toFloat().contains (e.position);
return isMouseOver();


+ 1
- 1
modules/juce_gui_basics/buttons/juce_Button.h View File

@@ -519,7 +519,7 @@ private:
void sendStateMessage();
void setToggleState (bool shouldBeOn, NotificationType click, NotificationType state);
bool isMouseOrTouchOver (const MouseEvent& e);
bool isMouseSourceOver (const MouseEvent& e);
JUCE_DECLARE_NON_COPYABLE_WITH_LEAK_DETECTOR (Button)
};


+ 1
- 1
modules/juce_gui_basics/components/juce_Component.cpp View File

@@ -2902,7 +2902,7 @@ bool Component::isMouseOver (bool includeChildren) const
auto* c = ms.getComponentUnderMouse();
if (c == this || (includeChildren && isParentOf (c)))
if (ms.isDragging() || ! ms.isTouch())
if (ms.isDragging() || ! (ms.isTouch() || ms.isPen()))
if (c->reallyContains (c->getLocalPoint (nullptr, ms.getScreenPosition()).roundToInt(), false))
return true;
}


Loading…
Cancel
Save