summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--ChangeLog.pre-2-106
-rw-r--r--gdk/win32/gdkproperty-win32.c17
3 files changed, 26 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index c1f14176d0..0534d02355 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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: