Mercurial > emacs
changeset 109965:aa6b00b4471c
Avoid clobbering primary selection when switching frames (Bug#6872).
* lisp/mouse.el (mouse-yank-primary): Avoid setting primary when
deactivating the mark (Bug#6872).
* src/keyboard.c (command_loop_1): Don't set primary selection during
handle-switch-frame (Bug#6872).
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Tue, 24 Aug 2010 11:48:14 -0400 |
parents | 894f06878a7e |
children | ba4a9b0e3879 |
files | lisp/ChangeLog lisp/mouse.el src/ChangeLog src/keyboard.c |
diffstat | 4 files changed, 22 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/ChangeLog Mon Aug 23 15:57:55 2010 +0200 +++ b/lisp/ChangeLog Tue Aug 24 11:48:14 2010 -0400 @@ -1,3 +1,8 @@ +2010-08-24 Chong Yidong <cyd@stupidchicken.com> + + * mouse.el (mouse-yank-primary): Avoid setting primary when + deactivating the mark (Bug#6872). + 2010-08-23 Michael Albinus <michael.albinus@gmx.de> * net/dbus.el: Accept UNIX domain sockets as bus address.
--- a/lisp/mouse.el Mon Aug 23 15:57:55 2010 +0200 +++ b/lisp/mouse.el Tue Aug 24 11:48:14 2010 -0400 @@ -1268,10 +1268,11 @@ (interactive "e") ;; Give temporary modes such as isearch a chance to turn off. (run-hooks 'mouse-leave-buffer-hook) + ;; Without this, confusing things happen upon e.g. inserting into + ;; the middle of an active region. (when select-active-regions - ;; Without this, confusing things happen upon e.g. inserting into - ;; the middle of an active region. - (deactivate-mark)) + (let (select-active-regions) + (deactivate-mark))) (or mouse-yank-at-point (mouse-set-point click)) (let ((primary (cond
--- a/src/ChangeLog Mon Aug 23 15:57:55 2010 +0200 +++ b/src/ChangeLog Tue Aug 24 11:48:14 2010 -0400 @@ -1,3 +1,8 @@ +2010-08-24 Chong Yidong <cyd@stupidchicken.com> + + * keyboard.c (command_loop_1): Don't clobber primary selection + during handle-switch-frame (Bug#6872). + 2010-08-23 Michael Albinus <michael.albinus@gmx.de> * dbusbind.c: Accept UNIX domain sockets as bus address.
--- a/src/keyboard.c Mon Aug 23 15:57:55 2010 +0200 +++ b/src/keyboard.c Tue Aug 24 11:48:14 2010 -0400 @@ -368,7 +368,7 @@ Used by the `select-active-regions' feature. */ Lisp_Object Vsaved_region_selection; -Lisp_Object Qx_set_selection, QPRIMARY; +Lisp_Object Qx_set_selection, QPRIMARY, Qhandle_switch_frame; Lisp_Object Qself_insert_command; Lisp_Object Qforward_char; @@ -1799,10 +1799,11 @@ { /* Even if not deactivating the mark, set PRIMARY if `select-active-regions' is non-nil. */ - if (EQ (Vselect_active_regions, Qonly) - ? EQ (CAR_SAFE (Vtransient_mark_mode), Qonly) - : (!NILP (Vselect_active_regions) - && !NILP (Vtransient_mark_mode))) + if ((EQ (Vselect_active_regions, Qonly) + ? EQ (CAR_SAFE (Vtransient_mark_mode), Qonly) + : (!NILP (Vselect_active_regions) + && !NILP (Vtransient_mark_mode))) + && !EQ (Vthis_command, Qhandle_switch_frame)) { int beg = XINT (Fmarker_position (current_buffer->mark)); int end = XINT (make_number (PT)); @@ -11702,6 +11703,8 @@ staticpro (&Qx_set_selection); QPRIMARY = intern_c_string ("PRIMARY"); staticpro (&QPRIMARY); + Qhandle_switch_frame = intern_c_string ("handle-switch-frame"); + staticpro (&Qhandle_switch_frame); Qinput_method_exit_on_first_char = intern_c_string ("input-method-exit-on-first-char"); staticpro (&Qinput_method_exit_on_first_char);