From: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
To: 3347@emacsbugs.donarmstrong.com
Subject: bug#3347: 23.0.93; unnecessary display updates with mouse-drag-region
Date: Sat, 23 May 2009 11:00:13 +0900 [thread overview]
Message-ID: <wlzld4efyq.wl%mituharu@math.s.chiba-u.ac.jp> (raw)
In-Reply-To: <wl4ovd6e4d.wl%mituharu@math.s.chiba-u.ac.jp>
>>>>> On Fri, 22 May 2009 11:54:58 +0900, YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> said:
> Mouse dragging over a text in the default face causes unnecessary
> updates in other windows displaying the same buffer.
> Steps to reproduce:
> 1. Invoke "Quartz Debug.app" on Mac OS X and check the "Flash screen
> updates" button.
> 2. $ emacs -Q -D
> 3. C-x 2
> 4. Drag the mouse over the *scratch* buffer text in the first
> window.
> Result:
> The text not only in the first window but also the other one is
> flashed whereas the latter doesn't need updates. The flashed area
> corresponds to the extended/shrunken part of the region in the first
> window.
> The updates in the second window do not happen if the text is in
> non-default face (e.g., start with "emacs -Q" instead of "emacs -Q
> -D").
> I can't observe this phenomenon on Emacs 22.3.
I tried some older versions and found that the change below made the
difference.
YAMAMOTO Mitsuharu
mituharu@math.s.chiba-u.ac.jp
2008-07-08 Chong Yidong <cyd@stupidchicken.com>
* xfaces.c (Finternal_merge_in_global_face): Save merged
attributes for the default face back into the face vector.
--- xfaces.c 2008/07/06 03:51:06 1.404
+++ xfaces.c 2008/07/08 17:27:28 1.405
@@ -3966,7 +3966,7 @@
else if (! UNSPECIFIEDP (gvec[i]))
lvec[i] = gvec[i];
- /* If the default face was changed, realize it again, and update the
+ /* If the default face was changed, update the face cache and the
`font' frame parameter. */
if (EQ (face, Qdefault))
{
@@ -3977,9 +3977,12 @@
/* This can be NULL (e.g., in batch mode). */
if (oldface)
{
+ /* Ensure that the face vector is fully specified by merging
+ the previously-cached vector. */
bcopy (oldface->lface, attrs, sizeof attrs);
merge_face_vectors (f, lvec, attrs, 0);
- newface = realize_face (c, attrs, DEFAULT_FACE_ID);
+ bcopy (attrs, lvec, sizeof attrs);
+ newface = realize_face (c, lvec, DEFAULT_FACE_ID);
if ((! UNSPECIFIEDP (gvec[LFACE_FAMILY_INDEX])
|| ! UNSPECIFIEDP (gvec[LFACE_FOUNDRY_INDEX])
next prev parent reply other threads:[~2009-05-23 2:00 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-05-22 2:54 bug#3347: 23.0.93; unnecessary display updates with mouse-drag-region YAMAMOTO Mitsuharu
2009-05-23 2:00 ` YAMAMOTO Mitsuharu [this message]
2020-09-14 14:44 ` Lars Ingebrigtsen
2020-09-16 4:25 ` YAMAMOTO Mitsuharu
2020-12-09 15:11 ` Lars Ingebrigtsen
2020-12-09 16:39 ` Lars Ingebrigtsen
-- strict thread matches above, loose matches on Subject: below --
2009-06-10 16:50 Chong Yidong
2009-06-11 0:28 ` YAMAMOTO Mitsuharu
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=wlzld4efyq.wl%mituharu@math.s.chiba-u.ac.jp \
--to=mituharu@math.s.chiba-u.ac.jp \
--cc=3347@emacsbugs.donarmstrong.com \
/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.