From: Karl Chen <quarl@hkn.eecs.berkeley.edu>
Cc: Richard Stallman <rms@gnu.org>, <emacs-devel@gnu.org>
Subject: Re: [cvs] bug when using pc-selection-mode/transient-mark-mode
Date: Sun, 22 Sep 2002 18:05:38 -0700 (PDT) [thread overview]
Message-ID: <Pine.LNX.4.44.0209221736480.32061-100000@hkn.eecs.berkeley.edu> (raw)
In-Reply-To: <200209222248.g8MMmKZ26653@rum.cs.yale.edu>
On Sun, 22 Sep 2002, Stefan Monnier wrote:
> `mark-active' is buffer-local and I think `deactivate-mark' should
> be buffer-local as well. But that begs the question "when do we check
> whether deactivate-mark was set and reset mark-active accordingly" ?
> Are we going to loop through all buffers, looking for ones with
> a non-nil deactivate-mark ?
> So maybe we should not make it buffer-local but instead make it hold
> a list of buffers whose mark should be deactivated.
> Currently we only use t or nil where t means "current-buffer".
Some options for a buffer-local deactivate-mark without checking all
buffers:
1. Only check deactivate-mark of the buffer that is current at the end of
each command (at the same places it's currently checked). This is similar
to current behavior (besides avoiding the temporary buffer modification
quirks); the current code doesn't support implicit mark deactivation using
deactivate-mark on buffers besides the one that's current at the end of
the command, either. The downside is that if deactivate-mark IS set in a
non-current buffer then the behavior later can be non-deterministic (e.g.:
start in buffer B1. command C1 sets deactivate-mark in B2 but stays in B1.
... command C2 switches to B2. B2's mark will get deactivated after C2
because at C2, the command loop only cleared B1's deactivate-mark but then
checked B2's deactivate-mark).
2. In the command loop, check only the deactivate-mark of the buffer that
was current at the beginning of the command. However, if a command
switches to another buffer, modifies the new buffer, and stays in this
buffer, then the new buffer's mark SHOULD get deactivated.
3. Check the deactivate-mark of the buffer that was current at the
beginning of the command, and if the current buffer at the end of the
command is different, check that also.
Non-automatic mark deactivation on any buffer can always be done using the
deactivate-mark /function/. The small number of commands that want to
deactivate the mark in a non-current buffer (I can't think of any right
now) perhaps should required to do so explicitly.
--
Karl Chen / quarl@quarl.org
next prev parent reply other threads:[~2002-09-23 1:05 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-09-16 5:55 [cvs] bug when using pc-selection-mode/transient-mark-mode Karl Chen
2002-09-16 19:27 ` Richard Stallman
2002-09-18 0:07 ` Karl Chen
2002-09-18 17:26 ` Richard Stallman
2002-09-19 7:11 ` Karl Chen
2002-09-19 8:00 ` Karl Chen
2002-09-19 8:48 ` Karl Chen
2002-09-20 3:45 ` Richard Stallman
2002-09-21 2:38 ` Karl Chen
2002-09-21 19:39 ` Richard Stallman
2002-09-22 22:48 ` Stefan Monnier
2002-09-23 1:05 ` Karl Chen [this message]
2002-09-23 1:18 ` Miles Bader
2002-09-23 1:25 ` Miles Bader
2002-09-23 18:31 ` Stefan Monnier
2002-09-23 20:34 ` Kim F. Storm
2002-09-24 3:24 ` Richard Stallman
2002-09-23 16:00 ` Richard Stallman
2002-09-23 20:38 ` Kim F. Storm
2002-09-19 19:52 ` Karl Chen
2002-09-20 18:42 ` Richard Stallman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Pine.LNX.4.44.0209221736480.32061-100000@hkn.eecs.berkeley.edu \
--to=quarl@hkn.eecs.berkeley.edu \
--cc=emacs-devel@gnu.org \
--cc=quarl@quarl.org \
--cc=rms@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.