From 4620d718161e59028ba013064fc1dd208f285762 Mon Sep 17 00:00:00 2001 From: jules Date: Wed, 27 Nov 2013 19:38:40 +0000 Subject: [PATCH] Made DragAndDropContainer force mouse-cursor updates to help when using modifier keys to change the drag mode. --- .../juce_gui_basics/mouse/juce_DragAndDropContainer.cpp | 9 +++++++++ .../juce_gui_basics/mouse/juce_DragAndDropContainer.h | 2 +- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp b/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp index 44d52f1bd3..0806461f2e 100644 --- a/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp +++ b/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.cpp @@ -154,10 +154,14 @@ public: else if (now > lastTimeOverTarget + RelativeTime::milliseconds (700)) checkForExternalDrag (details, screenPos); } + + forceMouseCursorUpdate(); } void timerCallback() override { + forceMouseCursorUpdate(); + if (sourceDetails.sourceComponent == nullptr) { delete this; @@ -201,6 +205,11 @@ private: bool hasCheckedForExternalDrag; Time lastTimeOverTarget; + void forceMouseCursorUpdate() + { + Desktop::getInstance().getMainMouseSource().forceMouseCursorUpdate(); + } + DragAndDropTarget* getCurrentlyOver() const noexcept { return dynamic_cast (currentlyOverComp.get()); diff --git a/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h b/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h index 7d0fed0de9..984375379b 100644 --- a/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h +++ b/modules/juce_gui_basics/mouse/juce_DragAndDropContainer.h @@ -110,7 +110,7 @@ public: It's useful when a component wants to call startDragging but doesn't know the DragAndDropContainer it should to use. - Obviously this may return 0 if it doesn't find a suitable component. + Obviously this may return nullptr if it doesn't find a suitable component. */ static DragAndDropContainer* findParentDragContainerFor (Component* childComponent);