summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@novell.com>2006-06-11 19:42:14 +0000
committerTor Lillqvist <tml@src.gnome.org>2006-06-11 19:42:14 +0000
commit6012c2da10cefa45f6c9fd74c74f27043dbe316b (patch)
tree683728984a37eebab6a62e9471f69d8f245fa98e
parent86a361760a994b9c02d1c359e7addf81883a0327 (diff)
downloadgdk-pixbuf-6012c2da10cefa45f6c9fd74c74f27043dbe316b.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)
-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 4ab6bfe1f..22e014d6a 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-09 Tor Lillqvist <tml@novell.com>
* gdk/win32/gdkdrawable-win32.c (_gdk_win32_drawable_release_dc):
diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10
index 4ab6bfe1f..22e014d6a 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-09 Tor Lillqvist <tml@novell.com>
* 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 1e5126231..42a525713 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: