mirror of
https://git.savannah.gnu.org/git/emacs.git
synced 2024-12-02 08:22:22 +00:00
* callint.c (Fcall_interactively): For '^' just delegate the work to
handle-shift-selection. (syms_of_callint): Move declaration of shift-select-mode to simple.el. * simple.el (shift-select-mode): Move declaration from callint.c. (handle-shift-selection): Remove `deactivate' arg and check shift-select-mode instead.
This commit is contained in:
parent
6c01cfb683
commit
84db11d602
@ -1,3 +1,9 @@
|
|||||||
|
2009-03-26 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
|
* simple.el (shift-select-mode): Move declaration from callint.c.
|
||||||
|
(handle-shift-selection): Remove `deactivate' arg and check
|
||||||
|
shift-select-mode instead.
|
||||||
|
|
||||||
2009-03-26 Juanma Barranquero <lekktu@gmail.com>
|
2009-03-26 Juanma Barranquero <lekktu@gmail.com>
|
||||||
|
|
||||||
* align.el (align-large-region, align-perl-modes, align-rules-list)
|
* align.el (align-large-region, align-perl-modes, align-rules-list)
|
||||||
|
@ -3746,33 +3746,44 @@ mode temporarily."
|
|||||||
(t (activate-mark)))
|
(t (activate-mark)))
|
||||||
nil))
|
nil))
|
||||||
|
|
||||||
(defun handle-shift-selection (&optional deactivate)
|
(defvar shift-select-mode t
|
||||||
|
"When non-nil, shifted motion keys activate the mark momentarily.
|
||||||
|
|
||||||
|
While the mark is activated in this way, any shift-translated point
|
||||||
|
motion key extends the region, and if Transient Mark mode was off, it
|
||||||
|
is temporarily turned on. Furthermore, the mark will be deactivated
|
||||||
|
by any subsequent point motion key that was not shift-translated, or
|
||||||
|
by any action that normally deactivates the mark in Transient Mark mode.
|
||||||
|
|
||||||
|
See `this-command-keys-shift-translated' for the meaning of
|
||||||
|
shift-translation.")
|
||||||
|
|
||||||
|
(defun handle-shift-selection ()
|
||||||
"Activate/deactivate mark depending on invocation thru ``shift translation.''
|
"Activate/deactivate mark depending on invocation thru ``shift translation.''
|
||||||
|
|
||||||
\(See `this-command-keys-shift-translated' for the meaning of
|
\(See `this-command-keys-shift-translated' for the meaning of
|
||||||
shift translation.)
|
shift translation.)
|
||||||
|
|
||||||
This is called whenever a command with a `^' character in its
|
This is called whenever a command with a `^' character in its
|
||||||
`interactive' spec is invoked while `shift-select-mode' is
|
`interactive' spec is invoked.
|
||||||
non-nil.
|
Its behavior is controlled by `shift-select-mode'.
|
||||||
|
|
||||||
If the command was invoked through shift translation, set the
|
If the command was invoked through shift translation, set the
|
||||||
mark and activate the region temporarily, unless it was already
|
mark and activate the region temporarily, unless it was already
|
||||||
set in this way. If the command was invoked without shift
|
set in this way. If the command was invoked without shift
|
||||||
translation, or if the optional argument DEACTIVATE is non-nil,
|
translation, or if the region was activated by the mouse,
|
||||||
deactivate the mark if the region is temporarily active."
|
deactivate the mark if the region is temporarily active."
|
||||||
(cond ((and this-command-keys-shift-translated
|
(cond ((and shift-select-mode this-command-keys-shift-translated)
|
||||||
(null deactivate))
|
(unless (and mark-active
|
||||||
(unless (and mark-active
|
(eq (car-safe transient-mark-mode) 'only))
|
||||||
(eq (car-safe transient-mark-mode) 'only))
|
(setq transient-mark-mode
|
||||||
(setq transient-mark-mode
|
(cons 'only
|
||||||
(cons 'only
|
(unless (eq transient-mark-mode 'lambda)
|
||||||
(unless (eq transient-mark-mode 'lambda)
|
transient-mark-mode)))
|
||||||
transient-mark-mode)))
|
(push-mark nil nil t)))
|
||||||
(push-mark nil nil t)))
|
((eq (car-safe transient-mark-mode) 'only)
|
||||||
((eq (car-safe transient-mark-mode) 'only)
|
(setq transient-mark-mode (cdr transient-mark-mode))
|
||||||
(setq transient-mark-mode (cdr transient-mark-mode))
|
(deactivate-mark))))
|
||||||
(deactivate-mark))))
|
|
||||||
|
|
||||||
(define-minor-mode transient-mark-mode
|
(define-minor-mode transient-mark-mode
|
||||||
"Toggle Transient Mark mode.
|
"Toggle Transient Mark mode.
|
||||||
|
@ -1,3 +1,9 @@
|
|||||||
|
2009-03-26 Stefan Monnier <monnier@iro.umontreal.ca>
|
||||||
|
|
||||||
|
* callint.c (Fcall_interactively): For '^' just delegate the work to
|
||||||
|
handle-shift-selection.
|
||||||
|
(syms_of_callint): Move declaration of shift-select-mode to simple.el.
|
||||||
|
|
||||||
2009-03-24 Chong Yidong <cyd@stupidchicken.com>
|
2009-03-24 Chong Yidong <cyd@stupidchicken.com>
|
||||||
|
|
||||||
* editfns.c (Ffloat_time): Doc fix (Bug#2768).
|
* editfns.c (Ffloat_time): Doc fix (Bug#2768).
|
||||||
|
@ -51,7 +51,7 @@ extern Lisp_Object Qface, Qminibuffer_prompt;
|
|||||||
even if mark_active is 0. */
|
even if mark_active is 0. */
|
||||||
Lisp_Object Vmark_even_if_inactive;
|
Lisp_Object Vmark_even_if_inactive;
|
||||||
|
|
||||||
Lisp_Object Vshift_select_mode, Qhandle_shift_selection;
|
Lisp_Object Qhandle_shift_selection;
|
||||||
|
|
||||||
Lisp_Object Vmouse_leave_buffer_hook, Qmouse_leave_buffer_hook;
|
Lisp_Object Vmouse_leave_buffer_hook, Qmouse_leave_buffer_hook;
|
||||||
|
|
||||||
@ -454,14 +454,7 @@ invoke it. If KEYS is omitted or nil, the return value of
|
|||||||
}
|
}
|
||||||
else if (*string == '^')
|
else if (*string == '^')
|
||||||
{
|
{
|
||||||
if (! NILP (Vshift_select_mode))
|
call0 (Qhandle_shift_selection);
|
||||||
call1 (Qhandle_shift_selection, Qnil);
|
|
||||||
/* Even if shift-select-mode is off, temporarily active
|
|
||||||
regions could be set using the mouse, and should be
|
|
||||||
deactivated. */
|
|
||||||
else if (CONSP (Vtransient_mark_mode)
|
|
||||||
&& EQ (XCAR (Vtransient_mark_mode), Qonly))
|
|
||||||
call1 (Qhandle_shift_selection, Qt);
|
|
||||||
string++;
|
string++;
|
||||||
}
|
}
|
||||||
else break;
|
else break;
|
||||||
@ -994,20 +987,6 @@ turns off region highlighting, but commands that use the mark
|
|||||||
behave as if the mark were still active. */);
|
behave as if the mark were still active. */);
|
||||||
Vmark_even_if_inactive = Qt;
|
Vmark_even_if_inactive = Qt;
|
||||||
|
|
||||||
DEFVAR_LISP ("shift-select-mode", &Vshift_select_mode,
|
|
||||||
doc: /* When non-nil, shifted motion keys activate the mark momentarily.
|
|
||||||
|
|
||||||
While the mark is activated in this way, any shift-translated point
|
|
||||||
motion key extends the region, and if Transient Mark mode was off, it
|
|
||||||
is temporarily turned on. Furthermore, the mark will be deactivated
|
|
||||||
by any subsequent point motion key that was not shift-translated, or
|
|
||||||
by any action that normally deactivates the mark in Transient Mark
|
|
||||||
mode.
|
|
||||||
|
|
||||||
See `this-command-keys-shift-translated' for the meaning of
|
|
||||||
shift-translation. */);
|
|
||||||
Vshift_select_mode = Qt;
|
|
||||||
|
|
||||||
DEFVAR_LISP ("mouse-leave-buffer-hook", &Vmouse_leave_buffer_hook,
|
DEFVAR_LISP ("mouse-leave-buffer-hook", &Vmouse_leave_buffer_hook,
|
||||||
doc: /* Hook to run when about to switch windows with a mouse command.
|
doc: /* Hook to run when about to switch windows with a mouse command.
|
||||||
Its purpose is to give temporary modes such as Isearch mode
|
Its purpose is to give temporary modes such as Isearch mode
|
||||||
|
Loading…
Reference in New Issue
Block a user