diff --git a/src/video/x11/SDL_x11events.c b/src/video/x11/SDL_x11events.c index 8de356a11..0703447b0 100644 --- a/src/video/x11/SDL_x11events.c +++ b/src/video/x11/SDL_x11events.c @@ -866,12 +866,19 @@ X11_DispatchEvent(_THIS) /* Have we been requested to quit (or another client message?) */ case ClientMessage:{ - int xdnd_version=0; + static int xdnd_version=0; if (xevent.xclient.message_type == videodata->XdndEnter) { + SDL_bool use_list = xevent.xclient.data.l[1] & 1; data->xdnd_source = xevent.xclient.data.l[0]; xdnd_version = ( xevent.xclient.data.l[1] >> 24); +#ifdef DEBUG_XEVENTS + printf("XID of source window : %ld\n", data->xdnd_source); + printf("Protocol version to use : %ld\n", xdnd_version); + printf("More then 3 data types : %ld\n", use_list); +#endif + if (use_list) { /* fetch conversion targets */ SDL_x11Prop p; @@ -885,6 +892,15 @@ X11_DispatchEvent(_THIS) } } else if (xevent.xclient.message_type == videodata->XdndPosition) { + +#ifdef DEBUG_XEVENTS + Atom act= videodata->XdndActionCopy; + if(xdnd_version >= 2) { + act = xevent.xclient.data.l[4]; + } + printf("Action requested by user is : %s\n", X11_XGetAtomName(display , act)); +#endif + /* reply with status */ memset(&m, 0, sizeof(XClientMessageEvent));