mirror of
https://github.com/juce-framework/JUCE.git
synced 2026-01-10 23:44:24 +00:00
Linux: Fixed drag and drop when dragging in the same window that started the operation
This commit is contained in:
parent
4e0adb2af8
commit
12b0a90c55
1 changed files with 17 additions and 13 deletions
|
|
@ -3034,21 +3034,10 @@ private:
|
|||
if (targetWindow == None)
|
||||
return;
|
||||
|
||||
GetXProperty prop (display, targetWindow, atoms->XdndAware,
|
||||
0, 2, false, AnyPropertyType);
|
||||
dragState->xdndVersion = getDnDVersionForWindow (targetWindow);
|
||||
|
||||
if (prop.success
|
||||
&& prop.data != None
|
||||
&& prop.actualFormat == 32
|
||||
&& prop.numItems == 1)
|
||||
{
|
||||
dragState->xdndVersion = jmin ((int) prop.data[0], (int) atoms->DndVersion);
|
||||
}
|
||||
else
|
||||
{
|
||||
dragState->xdndVersion = -1;
|
||||
if (dragState->xdndVersion == -1)
|
||||
return;
|
||||
}
|
||||
|
||||
sendExternalDragAndDropEnter (targetWindow);
|
||||
dragState->targetWindow = targetWindow;
|
||||
|
|
@ -3253,6 +3242,17 @@ private:
|
|||
return dndAwarePropFound;
|
||||
}
|
||||
|
||||
int getDnDVersionForWindow (Window targetWindow)
|
||||
{
|
||||
GetXProperty prop (display, targetWindow, atoms->XdndAware,
|
||||
0, 2, false, AnyPropertyType);
|
||||
|
||||
if (prop.success && prop.data != None && prop.actualFormat == 32 && prop.numItems == 1)
|
||||
return jmin ((int) prop.data[0], (int) atoms->DndVersion);
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
Window externalFindDragTargetWindow (Window targetWindow)
|
||||
{
|
||||
if (targetWindow == None)
|
||||
|
|
@ -3297,7 +3297,11 @@ private:
|
|||
dragState->allowedTypes.size());
|
||||
|
||||
dragState->dragging = true;
|
||||
dragState->xdndVersion = getDnDVersionForWindow (dragState->targetWindow);
|
||||
|
||||
sendExternalDragAndDropEnter (dragState->targetWindow);
|
||||
handleExternalDragMotionNotify();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue