Damjan Jovanovic : winex11.drv: Support XDnD version 5.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Mar 3 09:42:11 CST 2015
Module: wine
Branch: master
Commit: 1a20050826807d51109c684b8272561bcf909318
URL: http://source.winehq.org/git/wine.git/?a=commit;h=1a20050826807d51109c684b8272561bcf909318
Author: Damjan Jovanovic <damjan.jov at gmail.com>
Date: Mon Mar 2 06:32:08 2015 +0200
winex11.drv: Support XDnD version 5.
---
dlls/winex11.drv/x11drv.h | 2 +-
dlls/winex11.drv/xdnd.c | 11 ++++++++++-
2 files changed, 11 insertions(+), 2 deletions(-)
diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h
index 0adf7f3..533af2c 100644
--- a/dlls/winex11.drv/x11drv.h
+++ b/dlls/winex11.drv/x11drv.h
@@ -61,7 +61,7 @@ typedef int Status;
#define MAX_DASHLEN 16
-#define WINE_XDND_VERSION 4
+#define WINE_XDND_VERSION 5
/* X physical pen */
typedef struct
diff --git a/dlls/winex11.drv/xdnd.c b/dlls/winex11.drv/xdnd.c
index 6618edd..f6ce5e9 100644
--- a/dlls/winex11.drv/xdnd.c
+++ b/dlls/winex11.drv/xdnd.c
@@ -373,6 +373,8 @@ void X11DRV_XDND_DropEvent( HWND hWnd, XClientMessageEvent *event )
{
XClientMessageEvent e;
IDropTarget *dropTarget;
+ DWORD effect = XDNDDropEffect;
+ int accept = 0; /* Assume we're not accepting */
TRACE("\n");
@@ -386,7 +388,6 @@ void X11DRV_XDND_DropEvent( HWND hWnd, XClientMessageEvent *event )
{
HRESULT hr;
POINTL pointl;
- DWORD effect = XDNDDropEffect;
pointl.x = XDNDxy.x;
pointl.y = XDNDxy.y;
@@ -395,7 +396,10 @@ void X11DRV_XDND_DropEvent( HWND hWnd, XClientMessageEvent *event )
if (SUCCEEDED(hr))
{
if (effect != DROPEFFECT_NONE)
+ {
TRACE("drop succeeded\n");
+ accept = 1;
+ }
else
TRACE("the application refused the drop\n");
}
@@ -414,6 +418,11 @@ void X11DRV_XDND_DropEvent( HWND hWnd, XClientMessageEvent *event )
e.message_type = x11drv_atom(XdndFinished);
e.format = 32;
e.data.l[0] = event->window;
+ e.data.l[1] = accept;
+ if (accept)
+ e.data.l[2] = X11DRV_XDND_DROPEFFECTToXdndAction(effect);
+ else
+ e.data.l[2] = None;
XSendEvent(event->display, event->data.l[0], False, NoEventMask, (XEvent*)&e);
}
More information about the wine-cvs
mailing list