diff --git a/ChangeLog b/ChangeLog index 4ab6bfe1f6..22e014d6a2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2006-06-11 Tor Lillqvist + + * gdk/win32/gdkproperty-win32.c (gdk_property_change): Convert \n + to \r\n also when storing CF_UNICODETEXT (UTF-16) in the + Clipboard. (#344496) + 2006-06-09 Tor Lillqvist * gdk/win32/gdkdrawable-win32.c (_gdk_win32_drawable_release_dc): diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 4ab6bfe1f6..22e014d6a2 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +2006-06-11 Tor Lillqvist + + * gdk/win32/gdkproperty-win32.c (gdk_property_change): Convert \n + to \r\n also when storing CF_UNICODETEXT (UTF-16) in the + Clipboard. (#344496) + 2006-06-09 Tor Lillqvist * gdk/win32/gdkdrawable-win32.c (_gdk_win32_drawable_release_dc): diff --git a/gdk/win32/gdkproperty-win32.c b/gdk/win32/gdkproperty-win32.c index 1e51262313..42a525713e 100644 --- a/gdk/win32/gdkproperty-win32.c +++ b/gdk/win32/gdkproperty-win32.c @@ -327,6 +327,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)) @@ -418,9 +421,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: