Mercurial > emacs
changeset 35237:387dc44657f0
(selection_request_dpyinfo): New variable.
(x_handle_selection_request): Set it.
(x_selection_request_lisp_error): Don't call
x_decline_selection_request if selection request's display has
been closed.
author | Gerd Moellmann <gerd@gnu.org> |
---|---|
date | Thu, 11 Jan 2001 16:08:55 +0000 |
parents | ebc45a028f0f |
children | 90b0537d9056 |
files | src/xselect.c |
diffstat | 1 files changed, 8 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/xselect.c Thu Jan 11 15:39:27 2001 +0000 +++ b/src/xselect.c Thu Jan 11 16:08:55 2001 +0000 @@ -430,6 +430,10 @@ It is set to zero when the request is fully processed. */ static struct input_event *x_selection_current_request; +/* Display info in x_selection_request. */ + +static struct x_display_info *selection_request_dpyinfo; + /* Used as an unwind-protect clause so that, if a selection-converter signals an error, we tell the requester that we were unable to do what they wanted before we throw to top-level or go into the debugger or whatever. */ @@ -438,7 +442,8 @@ x_selection_request_lisp_error (ignore) Lisp_Object ignore; { - if (x_selection_current_request != 0) + if (x_selection_current_request != 0 + && selection_request_dpyinfo->display) x_decline_selection_request (x_selection_current_request); return Qnil; } @@ -707,8 +712,9 @@ goto DONE; } - count = specpdl_ptr - specpdl; x_selection_current_request = event; + count = BINDING_STACK_SIZE (); + selection_request_dpyinfo = dpyinfo; record_unwind_protect (x_selection_request_lisp_error, Qnil); target_symbol = x_atom_to_symbol (dpyinfo, SELECTION_EVENT_DISPLAY (event),