aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1995-11-15 18:32:09 +0000
committerRichard M. Stallman1995-11-15 18:32:09 +0000
commit0d199f9c6baa84ed0831004a9c8947f9f6aed0e0 (patch)
tree21147dff5b039f324994cef4b9473388ff557dc8 /src
parent1df9cc40601b02fdc0f4131514ddc92863a2f264 (diff)
downloademacs-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.c23
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 {