[PATCH v2 4/8] winex11: Move XdndLeave event handler to event.c.
Jacek Caban
wine at gitlab.winehq.org
Thu Apr 28 07:31:10 CDT 2022
From: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
---
dlls/winex11.drv/event.c | 9 ++++++++-
dlls/winex11.drv/unixlib.h | 1 +
dlls/winex11.drv/x11drv.h | 1 -
dlls/winex11.drv/xdnd.c | 6 +++++-
4 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/dlls/winex11.drv/event.c b/dlls/winex11.drv/event.c
index a02f0340010..729a0a7eab6 100644
--- a/dlls/winex11.drv/event.c
+++ b/dlls/winex11.drv/event.c
@@ -1920,6 +1920,13 @@ static void handle_xdnd_drop_event( HWND hwnd, XClientMessageEvent *event )
}
+static void handle_xdnd_leave_event( HWND hwnd, XClientMessageEvent *event )
+{
+ UINT type = DND_LEAVE_EVENT;
+ handle_dnd_event( &type );
+}
+
+
struct client_message_handler
{
int atom; /* protocol atom */
@@ -1935,7 +1942,7 @@ static const struct client_message_handler client_messages[] =
{ XATOM_XdndEnter, handle_xdnd_enter_event },
{ XATOM_XdndPosition, handle_xdnd_position_event },
{ XATOM_XdndDrop, handle_xdnd_drop_event },
- { XATOM_XdndLeave, X11DRV_XDND_LeaveEvent }
+ { XATOM_XdndLeave, handle_xdnd_leave_event }
};
diff --git a/dlls/winex11.drv/unixlib.h b/dlls/winex11.drv/unixlib.h
index 41120385e60..537a8e0326a 100644
--- a/dlls/winex11.drv/unixlib.h
+++ b/dlls/winex11.drv/unixlib.h
@@ -31,6 +31,7 @@ struct format_entry
enum dnd_event_type
{
DND_DROP_EVENT,
+ DND_LEAVE_EVENT,
DND_POSITION_EVENT,
};
diff --git a/dlls/winex11.drv/x11drv.h b/dlls/winex11.drv/x11drv.h
index c17dc45594c..69aa69404f4 100644
--- a/dlls/winex11.drv/x11drv.h
+++ b/dlls/winex11.drv/x11drv.h
@@ -294,7 +294,6 @@ extern BOOL IME_SetCompositionString(DWORD dwIndex, LPCVOID lpComp,
DWORD dwReadLen) DECLSPEC_HIDDEN;
extern void IME_SetResultString(LPWSTR lpResult, DWORD dwResultlen) DECLSPEC_HIDDEN;
-extern void X11DRV_XDND_LeaveEvent( HWND hWnd, XClientMessageEvent *event ) DECLSPEC_HIDDEN;
extern void handle_dnd_enter_event( struct format_entry *formats, ULONG size ) DECLSPEC_HIDDEN;
extern UINT handle_dnd_event( void *params ) DECLSPEC_HIDDEN;
diff --git a/dlls/winex11.drv/xdnd.c b/dlls/winex11.drv/xdnd.c
index 9de0b60d0cd..8240bbbf5d6 100644
--- a/dlls/winex11.drv/xdnd.c
+++ b/dlls/winex11.drv/xdnd.c
@@ -342,7 +342,7 @@ static DWORD handle_drop_event( struct dnd_drop_event_params *params )
*
* Handle an XdndLeave event.
*/
-void X11DRV_XDND_LeaveEvent( HWND hWnd, XClientMessageEvent *event )
+static NTSTATUS handle_leave_event(void)
{
IDropTarget *dropTarget;
@@ -362,6 +362,7 @@ void X11DRV_XDND_LeaveEvent( HWND hWnd, XClientMessageEvent *event )
}
X11DRV_XDND_FreeDragDropOp();
+ return 0;
}
@@ -736,6 +737,9 @@ UINT handle_dnd_event( void *params )
case DND_DROP_EVENT:
return handle_drop_event( params );
+ case DND_LEAVE_EVENT:
+ return handle_leave_event();
+
case DND_POSITION_EVENT:
return handle_position_event( params );
--
GitLab
https://gitlab.winehq.org/wine/wine/-/merge_requests/11
More information about the wine-devel
mailing list