diff options
Diffstat (limited to 'src/xselect.c')
| -rw-r--r-- | src/xselect.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/xselect.c b/src/xselect.c index cd49e05171b..e6103043dce 100644 --- a/src/xselect.c +++ b/src/xselect.c | |||
| @@ -964,6 +964,12 @@ x_handle_selection_request (event) | |||
| 964 | Atom type; | 964 | Atom type; |
| 965 | int nofree; | 965 | int nofree; |
| 966 | 966 | ||
| 967 | if (CONSP (converted_selection) && NILP (XCDR (converted_selection))) | ||
| 968 | { | ||
| 969 | x_decline_selection_request (event); | ||
| 970 | goto DONE2; | ||
| 971 | } | ||
| 972 | |||
| 967 | lisp_data_to_selection_data (SELECTION_EVENT_DISPLAY (event), | 973 | lisp_data_to_selection_data (SELECTION_EVENT_DISPLAY (event), |
| 968 | converted_selection, | 974 | converted_selection, |
| 969 | &data, &type, &size, &format, &nofree); | 975 | &data, &type, &size, &format, &nofree); |
| @@ -979,6 +985,8 @@ x_handle_selection_request (event) | |||
| 979 | if (!nofree) | 985 | if (!nofree) |
| 980 | xfree (data); | 986 | xfree (data); |
| 981 | } | 987 | } |
| 988 | |||
| 989 | DONE2: | ||
| 982 | unbind_to (count, Qnil); | 990 | unbind_to (count, Qnil); |
| 983 | 991 | ||
| 984 | DONE: | 992 | DONE: |