diff --git a/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp b/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp index c5be8a815d..e7b059d591 100644 --- a/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp +++ b/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp @@ -2268,13 +2268,18 @@ public: { updateKeyModifiers ((int) movedEvent.state); - lastMousePos = Point (movedEvent.x_root, movedEvent.y_root); + if ((movedEvent.state & (Button1MotionMask | Button2MotionMask + | Button3MotionMask | Button4MotionMask + | Button5MotionMask)) != 0) + { + lastMousePos = Point (movedEvent.x_root, movedEvent.y_root); - if (dragState->dragging) - handleExternalDragMotionNotify(); + if (dragState->dragging) + handleExternalDragMotionNotify(); - handleMouseEvent (MouseInputSource::InputSourceType::mouse, getMousePos (movedEvent), currentModifiers, - MouseInputSource::invalidPressure, MouseInputSource::invalidOrientation, getEventTime (movedEvent)); + handleMouseEvent (MouseInputSource::InputSourceType::mouse, getMousePos (movedEvent), currentModifiers, + MouseInputSource::invalidPressure, MouseInputSource::invalidOrientation, getEventTime (movedEvent)); + } } void handleEnterNotifyEvent (const XEnterWindowEvent& enterEvent)