summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorache <ache@FreeBSD.org>2001-03-06 00:02:47 +0000
committerache <ache@FreeBSD.org>2001-03-06 00:02:47 +0000
commitbb95dfa4d1fff206df59ab1a579af000d253a831 (patch)
treed24ffcb63dec8dbaee966740467951258d73a21e
parent72b9c05ef5a2034426dc7e5ad2c5a250b2b72b35 (diff)
downloadFreeBSD-src-bb95dfa4d1fff206df59ab1a579af000d253a831.zip
FreeBSD-src-bb95dfa4d1fff206df59ab1a579af000d253a831.tar.gz
Fix longstanding mouse cursor bug: blinking and eating all CPU while near text
cursor. The reason is: mouse cursor goes into hide/visible loop while text cursor even not moved. PR: 25536 Submitted by: David Xu <davidx@viasoft.com.cn>
-rw-r--r--sys/dev/syscons/syscons.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/syscons/syscons.c b/sys/dev/syscons/syscons.c
index 84f1cbe..452c8e0 100644
--- a/sys/dev/syscons/syscons.c
+++ b/sys/dev/syscons/syscons.c
@@ -1725,6 +1725,7 @@ scrn_update(scr_stat *scp, int show_cursor)
if ((scp->status & (MOUSE_MOVED | MOUSE_HIDDEN))
|| and_region(&s, &e, scp->start, scp->end)
|| ((scp->status & CURSOR_ENABLED) &&
+ (scp->cursor_pos != scp->cursor_oldpos) &&
(and_region(&s, &e, scp->cursor_pos, scp->cursor_pos)
|| and_region(&s, &e, scp->cursor_oldpos, scp->cursor_oldpos)))) {
sc_remove_mouse_image(scp);
OpenPOWER on IntegriCloud