freebsd-dev/sys
Bruce Evans eeab8fcc4b Quick fix for removal of the mouse cursor in vga direct graphics modes
(that is, in all supported 8, 15, 16 and 24-color modes).  Moving the
mouse cursor while holding down a button (giving cut marking) left a
trail of garbage from misremoved mouse cursors (usually colored
rectangles and not cursor shapes).  Cases with a button not held down
worked better and may even have worked.

No renderer support for removing (software) mouse cursors is needed
(and many renderers don't have any), since sc_remove_mouse_image()
marks for update the region containing the image and usually much
more.  The mouse cursor can be (partially) over as many as 4 character
cells, and removing it in only the 1-4 cells occupied by it would be
best for efficiency and for avoiding flicker.  However,
sc_remove_mouse_image() can only mark a single linear region and
usually marks a full row of cells and 1 more to be sure to cover the
4 cells.  It always does this, so using the special rendering method
just wastes even more time and gives even more flicker.  The special
methods will be removed soon.

The general method always works.  vga_pxlmouse_direct() appeared to
defer to it by returning immediately if !on.  However,
vga_pxlmouse_direct() actually did foot-shooting using a disguised
saveunder method.  Normal order near a mouse move is:
  (1) remove the mouse cursor in the renderer (optional)
  (2) remove the mouse cursor again and refresh the screen over the
      mouse cursor and much more from the vtb.  When the mouse has
      actually moved and a button is down, many attributes in this
      region are changed to be up to date with the new cut marking
  (3) draw the keyboard cursor again if it was clobbered by the update
  (4) draw the mouse cursor image in its new position.
The bug was to remove the mouse cursor again in step (4), before the
drawing it again in (4), using a saveunder that was valid in step (1)
at best.  The quick fix is to use the saveunder in step (1) and not
in step (4).  Using it in step (4) also used it before it was
initialized, initially and after  mode and screen switches.
2017-04-08 10:00:39 +00:00
..
amd64 revert r315959 because it causes build problems 2017-03-27 12:34:29 +00:00
arm Fix spelling mistake, BCM2835_PASWORD -> BCM2835_PASSWORD 2017-04-03 22:36:45 +00:00
arm64 Define 'lr' as x30 on aarch64 2017-04-07 22:58:28 +00:00
boot Silence GCC warning by initializing the local variable. 2017-04-07 22:58:34 +00:00
bsm Merge OpenBSM 1.2-alpha5 from vendor branch to FreeBSD -CURRENT: 2017-03-26 21:14:49 +00:00
cam Split iscsi(4) ctl frontend off of ctl(4) as cfiscsi(4) 2017-03-30 04:56:27 +00:00
cddl Fix expandsz 16.0E vals and vdev_min_asize of RAIDZ children 2017-04-03 13:11:28 +00:00
compat Create the LinuxKPI current task structure on the fly if it doesn't 2017-04-07 14:43:28 +00:00
conf Revert previous change to sys/conf/options & associated notes so builds can 2017-04-07 21:06:50 +00:00
contrib Copy needed include files from EDK2. This is a minimal set gleened 2017-03-08 02:47:59 +00:00
crypto Implement boot-time encryption key passing (keybuf) 2017-04-01 05:05:22 +00:00
ddb Fix printing of negative offsets (typically from frame pointers) again. 2017-03-26 18:46:35 +00:00
dev Quick fix for removal of the mouse cursor in vga direct graphics modes 2017-04-08 10:00:39 +00:00
fs smbfs: Fix an indentation level 2017-04-06 17:31:58 +00:00
gdb
geom Implement boot-time encryption key passing (keybuf) 2017-04-01 05:05:22 +00:00
gnu Update our device tree files to a Linux 4.10 2017-03-07 13:56:49 +00:00
i386 Adjust the constraint for "src" in atomic_(f)cmpset_8. 2017-03-27 16:18:19 +00:00
isa Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
kern kern_descrip: Move kinfo_ofile size assert under COMPAT_FREEBSD7 2017-04-07 05:00:09 +00:00
kgssapi
libkern Use inline asm instead of unportable intrinsics for the SSE4 crc32 2017-03-26 10:31:48 +00:00
mips Remove dead code/ifdef. 2017-04-04 08:17:03 +00:00
modules Remove the last vestiges of FDC_DEBUG & FD_DEBUG 2017-04-07 16:14:25 +00:00
net Fixed typo in comment found while reading commit email for fix of 2017-04-08 04:50:50 +00:00
net80211 [net80211] refactor out the A-MPDU dispatch routine. 2017-04-06 01:35:42 +00:00
netgraph mppc - Finish pluging NETGRAPH_MPPC_COMPRESSION. 2017-01-20 00:02:11 +00:00
netinet Revert the optimization from r304436 2017-04-05 16:57:13 +00:00
netinet6 Allow explicitly assigned IPv6 loopback address to be used in jails 2017-03-31 09:10:05 +00:00
netipsec When we are doing SA lookup for TCP-MD5, check both source and 2017-04-04 13:41:50 +00:00
netnatm
netpfil Remove "IPFW static rules" rmlock. 2017-04-03 13:35:04 +00:00
netsmb
nfs Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nfsclient Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nfsserver Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
nlm
ofed Add full VNET support to the inet_get_local_port_range() function in 2017-03-22 15:46:31 +00:00
opencrypto Don't leak a session and lock if a GMAC key has an invalid length. 2017-04-05 01:46:41 +00:00
powerpc Add Freescale eSPI driver found on QorIQ SoCs 2017-04-02 01:21:35 +00:00
riscv Fix printing of negative offsets (typically from frame pointers) again. 2017-03-26 18:46:35 +00:00
rpc Renumber copyright clause 4 2017-02-28 23:42:47 +00:00
security Break audit_bsm_klib.c into two files: one (audit_bsm_klib.c) 2017-04-03 10:15:58 +00:00
sparc64 Revert previous change to sys/conf/options & associated notes so builds can 2017-04-07 21:06:50 +00:00
sys Fixed typo. 2017-04-08 04:41:46 +00:00
teken Oops, my fix for bright colors broke bright black some more (in cases 2017-03-27 10:48:28 +00:00
tests
tools [fdt] Make DTBs generated by make_dtb.sh overlay-ready 2017-03-10 22:45:07 +00:00
ufs ufs: Export UFS_MAXNAMLEN to pathconf, statfs 2017-04-05 01:44:03 +00:00
vm Extract calculation of ioflags from the vm_pager_putpages flags into a 2017-04-05 16:56:04 +00:00
x86 revert r315959 because it causes build problems 2017-03-27 12:34:29 +00:00
xdr
xen xenstore: fix suspension when using the xenstore device 2017-03-07 09:17:48 +00:00
Makefile Remove pc98 support completely. 2017-01-28 02:22:15 +00:00