GNU bug report logs -
#3459
NS: mouse-face flicker
Previous Next
Reported by: David Reitter <david.reitter <at> gmail.com>
Date: Wed, 3 Jun 2009 16:45:03 UTC
Severity: normal
Fixed in version 25.1
Done: Alan J Third <alan <at> idiocy.org>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 3459 in the body.
You can then email your comments to 3459 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#3459
; Package
emacs
.
(Wed, 03 Jun 2009 16:45:03 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
David Reitter <david.reitter <at> gmail.com>
:
New bug report received and forwarded. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Wed, 03 Jun 2009 16:45:03 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):
This happens only with the NS port, not on X:
Emacs -Q
(insert (propertize "Hello World" 'mouse-face 'highlight))
Hover mouse over the Hello World text. Nothing special should happen.
Now select a region with the mouse or the keyboard.
Hover mouse over mouseface text again ==> Heavy flicker; there is a
visible, sequential removal and redraw of the highlighted text with
every mouse movement.
Diagnosis:
I'm not sure, hence this report.
One contributing factor is that we ns_flush() in ns_update_end().
However, this is not just due to nested updates, and just adding
ns_update calls in note_mouse_highlight alonedoesn't seem to help, at
least when transient-mark-mode is on.
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>
:
bug#3459
; Package
emacs
.
(Wed, 03 Jun 2009 21:20:04 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
David Reitter <david.reitter <at> gmail.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>
.
(Wed, 03 Jun 2009 21:20:04 GMT)
Full text and
rfc822 format available.
Message #10 received at 3459 <at> emacsbugs.donarmstrong.com (full text, mbox):
Some analysis suggests that the mouse face is generally cleared when t-
m-m is on, whether really needed or not. With the patch below (not
meant as a bug fix) applied, the bug goes away.
Without the patch, try_window_reusing_current_matrix is not used in t-
m-m with a region visible.
I guess that dpyinfo->mouse_face_window is then set to Qnil, the mouse
face text cleared and redrawn at a later point in time outside of the
update_begin/end bracket.
The double-redraws are inefficient, and I don't quite understand why
they are necessary.
I suspect that this only shows up in NS because the frame is flushed
every time we have an update_window_end().
Help, please!
diff --git a/src/xdisp.c b/src/xdisp.c
index ac989d3..9db30f8 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -14162,11 +14162,13 @@ try_window_reusing_current_matrix (w)
return 0;
/* Can't do this if region may have changed. */
+ /*
if ((!NILP (Vtransient_mark_mode)
&& !NILP (current_buffer->mark_active))
|| !NILP (w->region_showing)
|| !NILP (Vshow_trailing_whitespace))
return 0;
+ */
/* If top-line visibility has changed, give up. */
if (WINDOW_WANTS_HEADER_LINE_P (w)
@@ -23672,9 +23674,9 @@ note_mouse_highlight (f, x, y)
/* If we were displaying active text in another window, clear that.
Also clear if we move out of text area in same window. */
- if (! EQ (window, dpyinfo->mouse_face_window)
- || (part != ON_TEXT && part != ON_MODE_LINE && part !=
ON_HEADER_LINE
- && !NILP (dpyinfo->mouse_face_window)))
+ if ((! EQ (window, dpyinfo->mouse_face_window)
+ || (part != ON_TEXT && part != ON_MODE_LINE && part !=
ON_HEADER_LINE))
+ && !NILP (dpyinfo->mouse_face_window))
clear_mouse_face (dpyinfo);
/* Not on a window -> return. */
bug reassigned from package `emacs' to `emacs,ns'.
Request was from
Glenn Morris <rgm+emacsbugs <at> gnu.org>
to
control <at> emacsbugs.donarmstrong.com
.
(Wed, 17 Jun 2009 07:35:09 GMT)
Full text and
rfc822 format available.
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>, owner <at> emacsbugs.donarmstrong.com
:
bug#3459
; Package
emacs,ns
.
(Fri, 18 Sep 2009 21:50:04 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Adrian Robert <adrian.b.robert <at> gmail.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>, owner <at> emacsbugs.donarmstrong.com
.
(Fri, 18 Sep 2009 21:50:06 GMT)
Full text and
rfc822 format available.
Message #17 received at 3459 <at> emacsbugs.donarmstrong.com (full text, mbox):
Hello,
Can anyone familiar with the redisplay code take a look at this? Or
try the patch?
David, can you explain the second part of your patch? Just including
the first part fixes the bug for me. Is the change to the if test in
the second part meant to handle a problematic case that slips through
as the result of the first part? It seems to make no difference. In
particular, there is still flickering either way if you try to select
the mouse-highlighted text.
Information forwarded
to
bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>, owner <at> emacsbugs.donarmstrong.com
:
bug#3459
; Package
emacs,ns
.
(Fri, 18 Sep 2009 22:00:04 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
David Reitter <david.reitter <at> gmail.com>
:
Extra info received and forwarded to list. Copy sent to
Emacs Bugs <bug-gnu-emacs <at> gnu.org>, owner <at> emacsbugs.donarmstrong.com
.
(Fri, 18 Sep 2009 22:00:04 GMT)
Full text and
rfc822 format available.
Message #22 received at 3459 <at> emacsbugs.donarmstrong.com (full text, mbox):
[Message part 1 (text/plain, inline)]
On Sep 18, 2009, at 5:42 PM, Adrian Robert wrote:
> David, can you explain the second part of your patch? Just
> including the first part fixes the bug for me. Is the change to the
> if test in the second part meant to handle a problematic case that
> slips through as the result of the first part? It seems to make no
> difference. In particular, there is still flickering either way if
> you try to select the mouse-highlighted text.
I can't recall the details after 3+ months, but judging from the code
I think the second change doesn't make a difference unless window can
be Qnil, and I guess it can't.
Note: the patch is not a fix. Just a way to demonstrate one source of
flicker.
[smime.p7s (application/pkcs7-signature, attachment)]
Information forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#3459
; Package
emacs
.
(Sun, 10 Jan 2016 22:46:02 GMT)
Full text and
rfc822 format available.
Message #25 received at 3459 <at> debbugs.gnu.org (full text, mbox):
David Reitter <david.reitter <at> gmail.com> writes:
> This happens only with the NS port, not on X:
>
> Emacs -Q
>
> (insert (propertize "Hello World" 'mouse-face 'highlight))
>
> Hover mouse over the Hello World text. Nothing special should happen.
>
> Now select a region with the mouse or the keyboard.
>
> Hover mouse over mouseface text again ==> Heavy flicker; there is a
> visible, sequential removal and redraw of the highlighted text with
> every mouse movement.
I can't reproduce this in Emacs 25, so I'm going to close it as fixed.
--
Alan Third
bug marked as fixed in version 25.1, send any further explanations to
3459 <at> debbugs.gnu.org and David Reitter <david.reitter <at> gmail.com>
Request was from
Alan J Third <alan <at> idiocy.org>
to
control <at> debbugs.gnu.org
.
(Sun, 10 Jan 2016 22:46:02 GMT)
Full text and
rfc822 format available.
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Mon, 08 Feb 2016 12:24:03 GMT)
Full text and
rfc822 format available.
This bug report was last modified 9 years and 130 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.