diff options
Diffstat (limited to 'gdk/win32/gdkproperty-win32.c')
-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: |