diff options
author | Tor Lillqvist <tml@novell.com> | 2006-06-11 19:45:56 +0000 |
---|---|---|
committer | Tor Lillqvist <tml@src.gnome.org> | 2006-06-11 19:45:56 +0000 |
commit | dd9aefca76c98acf0c6614357b791be73ad41eb6 (patch) | |
tree | e7491e3129eea510d63f41a32a6ef0fff91e33ed /gdk | |
parent | 7870cc59aabdd5def05de813e792660f7261b5f2 (diff) | |
download | gtk+-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.c | 17 |
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: |