diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | ChangeLog.pre-2-10 | 6 | ||||
-rw-r--r-- | gdk/win32/gdkproperty-win32.c | 17 |
3 files changed, 26 insertions, 3 deletions
@@ -1,3 +1,9 @@ +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) + 2006-06-10 Matthias Clasen <mclasen@redhat.com> * gtk/gtkrecentchooserwidget.c diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index c1f14176d0..0534d02355 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,9 @@ +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) + 2006-06-10 Matthias Clasen <mclasen@redhat.com> * gtk/gtkrecentchooserwidget.c 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: |