|
From: Petr V. <van...@vc...> - 2002-08-18 23:07:50
|
Hi Linus, Since vesafb was converted to the (strange) cfb* interface, it uses random colors for the cursor, making cursor invisible when console uses black foreground (f.e. Midnight Commander does that). Problem is common to all fbdevs which use fbcon-accel interface. This change tries to restore old behavior which existed before cfb* came in. Unfortunately due to region.color semantic it is not possible to completely restore previous behavior - + for truecolor cfbfillrect always consults current palette, so we do not have "always invert" constant available, and so we do inversion with palette color 15 (it is light white, ~0, by default) + for directcolor it assumes that display has at least 4 bits per color. + for pseudocolor it works as old code worked. Thanks, Petr Vandrovec van...@vc... diff -urdN linux/drivers/video/fbcon-accel.c linux/drivers/video/fbcon-accel.c --- linux/drivers/video/fbcon-accel.c 2002-08-18 01:35:06.000000000 +0200 +++ linux/drivers/video/fbcon-accel.c 2002-08-18 15:07:42.000000000 +0200 @@ -104,7 +104,10 @@ struct fb_info *info = p->fb_info; struct fb_fillrect region; - region.color = attr_fgcol_ec(p, p->conp); + if (info->fix.visual == FB_VISUAL_PSEUDOCOLOR || info->fix.visual == FB_VISUAL_TRUECOLOR) + region.color = 0x0F; + else + region.color = (0x0F << info->var.red.offset) | (0x0F << info->var.green.offset) | (0x0F << info->var.blue.offset); region.dx = xx * fontwidth(p); region.dy = yy * fontheight(p); region.width = fontwidth(p); |