aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/ChangeLog3
-rw-r--r--src/xselect.c13
2 files changed, 11 insertions, 5 deletions
diff --git a/src/ChangeLog b/src/ChangeLog
index b6180e5a224..0cb744d5b62 100644
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,5 +1,8 @@
12008-05-26 Andreas Schwab <schwab@suse.de> 12008-05-26 Andreas Schwab <schwab@suse.de>
2 2
3 * xselect.c (x_reply_selection_request): Properly handle format ==
4 32. Always send multiples of format size.
5
3 * xterm.c (x_set_frame_alpha): Fix type mismatch. 6 * xterm.c (x_set_frame_alpha): Fix type mismatch.
4 7
52008-05-26 Jason Rumney <jasonr@gnu.org> 82008-05-26 Jason Rumney <jasonr@gnu.org>
diff --git a/src/xselect.c b/src/xselect.c
index 0d09f138d45..dd5c1dcc6ba 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -808,7 +808,7 @@ x_reply_selection_request (event, format, data, size, type)
808 { 808 {
809 int i = ((bytes_remaining < max_bytes) 809 int i = ((bytes_remaining < max_bytes)
810 ? bytes_remaining 810 ? bytes_remaining
811 : max_bytes); 811 : max_bytes) / format_bytes;
812 812
813 BLOCK_INPUT; 813 BLOCK_INPUT;
814 814
@@ -816,15 +816,18 @@ x_reply_selection_request (event, format, data, size, type)
816 = expect_property_change (display, window, reply.property, 816 = expect_property_change (display, window, reply.property,
817 PropertyDelete); 817 PropertyDelete);
818 818
819 TRACE1 ("Sending increment of %d bytes", i); 819 TRACE1 ("Sending increment of %d elements", i);
820 TRACE1 ("Set %s to increment data", 820 TRACE1 ("Set %s to increment data",
821 XGetAtomName (display, reply.property)); 821 XGetAtomName (display, reply.property));
822 822
823 /* Append the next chunk of data to the property. */ 823 /* Append the next chunk of data to the property. */
824 XChangeProperty (display, window, reply.property, type, format, 824 XChangeProperty (display, window, reply.property, type, format,
825 PropModeAppend, data, i / format_bytes); 825 PropModeAppend, data, i);
826 bytes_remaining -= i; 826 bytes_remaining -= i * format_bytes;
827 data += i; 827 if (format == 32)
828 data += i * sizeof (long);
829 else
830 data += i * format_bytes;
828 XFlush (display); 831 XFlush (display);
829 had_errors = x_had_errors_p (display); 832 had_errors = x_had_errors_p (display);
830 UNBLOCK_INPUT; 833 UNBLOCK_INPUT;