diff options
| author | Richard M. Stallman | 1995-11-15 18:32:09 +0000 |
|---|---|---|
| committer | Richard M. Stallman | 1995-11-15 18:32:09 +0000 |
| commit | 0d199f9c6baa84ed0831004a9c8947f9f6aed0e0 (patch) | |
| tree | 21147dff5b039f324994cef4b9473388ff557dc8 /src | |
| parent | 1df9cc40601b02fdc0f4131514ddc92863a2f264 (diff) | |
| download | emacs-0d199f9c6baa84ed0831004a9c8947f9f6aed0e0.tar.gz emacs-0d199f9c6baa84ed0831004a9c8947f9f6aed0e0.zip | |
(x_clear_frame_selections): Get selection_symbol properly.
(x_clear_frame_selections): Undo previous change.
Diffstat (limited to 'src')
| -rw-r--r-- | src/xselect.c | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/xselect.c b/src/xselect.c index ad0cc265861..8c8f3e0a02e 100644 --- a/src/xselect.c +++ b/src/xselect.c | |||
| @@ -818,6 +818,27 @@ x_clear_frame_selections (f) | |||
| 818 | /* Otherwise, we're really honest and truly being told to drop it. | 818 | /* Otherwise, we're really honest and truly being told to drop it. |
| 819 | Don't use Fdelq as that may QUIT;. */ | 819 | Don't use Fdelq as that may QUIT;. */ |
| 820 | 820 | ||
| 821 | /* Delete elements from the beginning of Vselection_alist. */ | ||
| 822 | while (!NILP (Vselection_alist) | ||
| 823 | && EQ (frame, Fcar (Fcdr (Fcdr (Fcdr (Fcar (Vselection_alist))))))) | ||
| 824 | { | ||
| 825 | /* Let random Lisp code notice that the selection has been stolen. */ | ||
| 826 | Lisp_Object hooks, selection_symbol; | ||
| 827 | |||
| 828 | hooks = Vx_lost_selection_hooks; | ||
| 829 | selection_symbol = Fcar (Fcar (Vselection_alist)); | ||
| 830 | |||
| 831 | if (!EQ (hooks, Qunbound)) | ||
| 832 | { | ||
| 833 | for (; CONSP (hooks); hooks = Fcdr (hooks)) | ||
| 834 | call1 (Fcar (hooks), selection_symbol); | ||
| 835 | redisplay_preserve_echo_area (); | ||
| 836 | } | ||
| 837 | |||
| 838 | Vselection_alist = Fcdr (Vselection_alist); | ||
| 839 | } | ||
| 840 | |||
| 841 | /* Delete elements after the beginning of Vselection_alist. */ | ||
| 821 | for (rest = Vselection_alist; !NILP (rest); rest = Fcdr (rest)) | 842 | for (rest = Vselection_alist; !NILP (rest); rest = Fcdr (rest)) |
| 822 | if (EQ (frame, Fcar (Fcdr (Fcdr (Fcdr (Fcar (XCONS (rest)->cdr))))))) | 843 | if (EQ (frame, Fcar (Fcdr (Fcdr (Fcdr (Fcar (XCONS (rest)->cdr))))))) |
| 823 | { | 844 | { |
| @@ -825,7 +846,7 @@ x_clear_frame_selections (f) | |||
| 825 | Lisp_Object hooks, selection_symbol; | 846 | Lisp_Object hooks, selection_symbol; |
| 826 | 847 | ||
| 827 | hooks = Vx_lost_selection_hooks; | 848 | hooks = Vx_lost_selection_hooks; |
| 828 | selection_symbol = Fcar (XCONS (rest)->cdr); | 849 | selection_symbol = Fcar (Fcar (XCONS (rest)->cdr)); |
| 829 | 850 | ||
| 830 | if (!EQ (hooks, Qunbound)) | 851 | if (!EQ (hooks, Qunbound)) |
| 831 | { | 852 | { |