Date: Sun, 4 Mar 2001 18:36:27 -0800 (PST) From: davidx@viasoft.com.cn To: freebsd-gnats-submit@FreeBSD.org Subject: kern/25536: fix annoying console mouse cursor flicker problem Message-ID: <200103050236.f252aRD99282@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 25536 >Category: kern >Synopsis: fix annoying console mouse cursor flicker problem >Confidential: no >Severity: critical >Priority: high >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Mar 04 18:40:00 PST 2001 >Closed-Date: >Last-Modified: >Originator: David Xu >Release: FreeBSD 4.2-stable >Organization: viasoft >Environment: FreeBSD davidbsd.viasoft.com.cn 4.2-STABLE FreeBSD 4.2-STABLE #10: Fri Mar 2 09 :24:41 CST 2001 root@davidbsd.viasoft.com.cn:/usr/src/sys/compile/xu i386 >Description: here is a patch for the problem reported in PR25439, I found the bug is in /sys/dev/syscons/syscons.c, where function srcn_update detects if text cursor is in a special area, if it is in the area, the function will repeatly hide and show text cursor in very fast speed, the condition remains true until mouse cursor is moved away from such area, cause 20% of CPU time is wasted. >How-To-Repeat: ......................... ......................... .....xxxxxxxxxxxxxxxxxxxx xxxxx@................... ......................... above image represents a screen image, every line represents a screen line, char @ is text cursor position, if mouse cursor is moved into area marked with char x, then mouse cursor flickers weirdly. >Fix: patch for /sys/dev/syscons.c: --- syscons.c.orig Mon Mar 5 08:36:49 2001 +++ syscons.c Mon Mar 5 08:37:11 2001 @@ -1723,6 +1723,7 @@ 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); >Release-Note: >Audit-Trail: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103050236.f252aRD99282>