Module: wine Branch: master Commit: c2f73b97802dc9e1f84220c271038b97415bad5e URL: http://source.winehq.org/git/wine.git/?a=commit;h=c2f73b97802dc9e1f84220c271...
Author: Damjan Jovanovic damjan.jov@gmail.com Date: Tue May 27 02:23:27 2014 +0200
winex11.drv: Import text/plain XDND selections through the clipboard.
---
dlls/winex11.drv/clipboard.c | 1 + dlls/winex11.drv/xdnd.c | 57 ------------------------------------------ 2 files changed, 1 insertion(+), 57 deletions(-)
diff --git a/dlls/winex11.drv/clipboard.c b/dlls/winex11.drv/clipboard.c index 350eeab..dfd09e9 100644 --- a/dlls/winex11.drv/clipboard.c +++ b/dlls/winex11.drv/clipboard.c @@ -186,6 +186,7 @@ static const struct } builtin_formats[] = { { CF_TEXT, XA_STRING, X11DRV_CLIPBOARD_ImportXAString, X11DRV_CLIPBOARD_ExportString}, + { CF_TEXT, XATOM_text_plain, X11DRV_CLIPBOARD_ImportXAString, X11DRV_CLIPBOARD_ExportString}, { CF_BITMAP, XATOM_WCF_BITMAP, X11DRV_CLIPBOARD_ImportClipboardData, NULL}, { CF_METAFILEPICT, XATOM_WCF_METAFILEPICT, X11DRV_CLIPBOARD_ImportMetaFilePict, X11DRV_CLIPBOARD_ExportMetaFilePict }, { CF_SYLK, XATOM_WCF_SYLK, X11DRV_CLIPBOARD_ImportClipboardData, X11DRV_CLIPBOARD_ExportClipboardData }, diff --git a/dlls/winex11.drv/xdnd.c b/dlls/winex11.drv/xdnd.c index 2184a42..db88fc2 100644 --- a/dlls/winex11.drv/xdnd.c +++ b/dlls/winex11.drv/xdnd.c @@ -73,13 +73,11 @@ static HWND XDNDLastDropTargetWnd;
static void X11DRV_XDND_InsertXDNDData(int property, int format, void* data, unsigned int len); static int X11DRV_XDND_DeconstructTextURIList(int property, void* data, int len); -static int X11DRV_XDND_DeconstructTextPlain(int property, void* data, int len); static void X11DRV_XDND_MapFormat(Display *display, Window xwin, unsigned int property, unsigned char *data, int len); static void X11DRV_XDND_ResolveProperty(Display *display, Window xwin, Time tm, Atom *types, unsigned long count); static void X11DRV_XDND_SendDropFiles(HWND hwnd); static void X11DRV_XDND_FreeDragDropOp(void); -static unsigned int X11DRV_XDND_UnixToDos(char** lpdest, char* lpsrc, int len); static WCHAR* X11DRV_XDND_URIToDOS(char *encodedURI);
static CRITICAL_SECTION xdnd_cs; @@ -566,8 +564,6 @@ static void X11DRV_XDND_MapFormat(Display *display, Window xwin, unsigned int pr
if (property == x11drv_atom(text_uri_list)) X11DRV_XDND_DeconstructTextURIList(property, data, len); - else if (property == x11drv_atom(text_plain)) - X11DRV_XDND_DeconstructTextPlain(property, data, len); else { /* use the clipboard import functions for other types */ @@ -676,25 +672,6 @@ static int X11DRV_XDND_DeconstructTextURIList(int property, void* data, int len)
/************************************************************************** - * X11DRV_XDND_DeconstructTextPlain - * - * Interpret text/plain Data and add records to <dndfmt> linked list - */ -static int X11DRV_XDND_DeconstructTextPlain(int property, void* data, int len) -{ - char* dostext; - - /* Always supply plain text */ - X11DRV_XDND_UnixToDos(&dostext, data, len); - X11DRV_XDND_InsertXDNDData(property, CF_TEXT, dostext, strlen(dostext)); - - TRACE("CF_TEXT (%d): %s\n", CF_TEXT, dostext); - - return 1; -} - - -/************************************************************************** * X11DRV_XDND_SendDropFiles */ static void X11DRV_XDND_SendDropFiles(HWND hwnd) @@ -766,40 +743,6 @@ static void X11DRV_XDND_FreeDragDropOp(void) }
- -/************************************************************************** - * X11DRV_XDND_UnixToDos - */ -static unsigned int X11DRV_XDND_UnixToDos(char** lpdest, char* lpsrc, int len) -{ - int i; - unsigned int destlen, lines; - - for (i = 0, lines = 0; i <= len; i++) - { - if (lpsrc[i] == '\n') - lines++; - } - - destlen = len + lines + 1; - - if (lpdest) - { - char* lpstr = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, destlen); - for (i = 0, lines = 0; i <= len; i++) - { - if (lpsrc[i] == '\n') - lpstr[++lines + i] = '\r'; - lpstr[lines + i] = lpsrc[i]; - } - - *lpdest = lpstr; - } - - return lines; -} - - /************************************************************************** * X11DRV_XDND_URIToDOS */