summaryrefslogtreecommitdiff
path: root/gdk
diff options
context:
space:
mode:
authorTor Lillqvist <tml@novell.com>2006-06-11 19:45:56 +0000
committerTor Lillqvist <tml@src.gnome.org>2006-06-11 19:45:56 +0000
commitdd9aefca76c98acf0c6614357b791be73ad41eb6 (patch)
treee7491e3129eea510d63f41a32a6ef0fff91e33ed /gdk
parent7870cc59aabdd5def05de813e792660f7261b5f2 (diff)
downloadgtk+-dd9aefca76c98acf0c6614357b791be73ad41eb6.tar.gz
Convert \n to \r\n also when storing CF_UNICODETEXT (UTF-16) in the
2006-06-11 Tor Lillqvist <tml@novell.com> * gdk/win32/gdkproperty-win32.c (gdk_property_change): Convert \n to \r\n also when storing CF_UNICODETEXT (UTF-16) in the Clipboard. (#344496)
Diffstat (limited to 'gdk')
-rw-r--r--gdk/win32/gdkproperty-win32.c17
1 files changed, 14 insertions, 3 deletions
diff --git a/gdk/win32/gdkproperty-win32.c b/gdk/win32/gdkproperty-win32.c
index 9d7dc12f76..af9277fe01 100644
--- a/gdk/win32/gdkproperty-win32.c
+++ b/gdk/win32/gdkproperty-win32.c
@@ -336,6 +336,9 @@ gdk_property_change (GdkWindow *window,
wclen++; /* Terminating 0 */
size = wclen * 2;
+ for (i = 0; i < wclen; i++)
+ if (wcptr[i] == '\n')
+ size += 2;
GDK_NOTE (DND, g_print ("... as Unicode\n"));
}
else if (find_common_locale (data, nelements, nchars, &lcid, &buf, &size))
@@ -427,9 +430,17 @@ gdk_property_change (GdkWindow *window,
break;
case UNICODE_TEXT:
- cf = CF_UNICODETEXT;
- memmove (ucptr, wcptr, size);
- g_free (wcptr);
+ {
+ wchar_t *p = (wchar_t *) ucptr;
+ cf = CF_UNICODETEXT;
+ for (i = 0; i < wclen; i++)
+ {
+ if (wcptr[i] == '\n')
+ *p++ = '\r';
+ *p++ = wcptr[i];
+ }
+ g_free (wcptr);
+ }
break;
case SINGLE_LOCALE: