diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 3 | ||||
| -rw-r--r-- | src/xselect.c | 13 |
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 @@ | |||
| 1 | 2008-05-26 Andreas Schwab <schwab@suse.de> | 1 | 2008-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 | ||
| 5 | 2008-05-26 Jason Rumney <jasonr@gnu.org> | 8 | 2008-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; |