aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerd Moellmann2001-01-11 16:08:55 +0000
committerGerd Moellmann2001-01-11 16:08:55 +0000
commitca29f2b87b5d3ca64e06fd81acd34701387782a6 (patch)
treec23227091190bd904051475e25f78f48ded27f49
parentbec04ade3a121c2707d34e04bd7213e59025d2cc (diff)
downloademacs-ca29f2b87b5d3ca64e06fd81acd34701387782a6.tar.gz
emacs-ca29f2b87b5d3ca64e06fd81acd34701387782a6.zip
(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.
-rw-r--r--src/xselect.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/xselect.c b/src/xselect.c
index 4c7c7a7f862..08e4fd9b868 100644
--- a/src/xselect.c
+++ b/src/xselect.c
@@ -430,6 +430,10 @@ x_decline_selection_request (event)
430 It is set to zero when the request is fully processed. */ 430 It is set to zero when the request is fully processed. */
431static struct input_event *x_selection_current_request; 431static struct input_event *x_selection_current_request;
432 432
433/* Display info in x_selection_request. */
434
435static struct x_display_info *selection_request_dpyinfo;
436
433/* Used as an unwind-protect clause so that, if a selection-converter signals 437/* Used as an unwind-protect clause so that, if a selection-converter signals
434 an error, we tell the requester that we were unable to do what they wanted 438 an error, we tell the requester that we were unable to do what they wanted
435 before we throw to top-level or go into the debugger or whatever. */ 439 before we throw to top-level or go into the debugger or whatever. */
@@ -438,7 +442,8 @@ static Lisp_Object
438x_selection_request_lisp_error (ignore) 442x_selection_request_lisp_error (ignore)
439 Lisp_Object ignore; 443 Lisp_Object ignore;
440{ 444{
441 if (x_selection_current_request != 0) 445 if (x_selection_current_request != 0
446 && selection_request_dpyinfo->display)
442 x_decline_selection_request (x_selection_current_request); 447 x_decline_selection_request (x_selection_current_request);
443 return Qnil; 448 return Qnil;
444} 449}
@@ -707,8 +712,9 @@ x_handle_selection_request (event)
707 goto DONE; 712 goto DONE;
708 } 713 }
709 714
710 count = specpdl_ptr - specpdl;
711 x_selection_current_request = event; 715 x_selection_current_request = event;
716 count = BINDING_STACK_SIZE ();
717 selection_request_dpyinfo = dpyinfo;
712 record_unwind_protect (x_selection_request_lisp_error, Qnil); 718 record_unwind_protect (x_selection_request_lisp_error, Qnil);
713 719
714 target_symbol = x_atom_to_symbol (dpyinfo, SELECTION_EVENT_DISPLAY (event), 720 target_symbol = x_atom_to_symbol (dpyinfo, SELECTION_EVENT_DISPLAY (event),