mouse: clamp the pointer to the screen that exists, not to 800x600
kernel/dev/mouse.c held the pointer inside literal 800x600 bounds. That was correct while 800x600 was the only mode the loader could set, which it was until the resolution became a boot-time choice. At 1280x800 the pointer simply stopped two thirds of the way across and would not go further -- which reads as the cursor drifting away from the host's rather than as a clamp. vga.c grows vga_get_width/vga_get_height for it. The mode is chosen at boot now, so nothing above the framebuffer may hardcode its size, and these are the first two callers that needed to ask. Verified that the system still builds and boots at 1280x800, and that bootcheck is 108 [ok] and schcom-test passes. I did not manage to photograph the pointer past the old limit in the time available -- there is no reader for /dev/mouse in the image and the screendump attempt did not resolve, so the fix rests on inspection rather than on a picture. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
0362427e80
commit
eafdddefbc
3 changed files with 30 additions and 2 deletions
|
|
@ -382,6 +382,10 @@ void vga_putc(int, uint32);
|
|||
void vga_clear(uint32);
|
||||
void vga_screen_reset(void);
|
||||
void vga_set_bg(uint32);
|
||||
// The mode actually in use. The resolution is a boot-time choice now, so no
|
||||
// caller may hardcode it.
|
||||
uint32 vga_get_width(void);
|
||||
uint32 vga_get_height(void);
|
||||
// Crash-screen primitives: the panic handler lays itself out rather than
|
||||
// printing. See kernel/core/panic.c.
|
||||
int vga_ready(void);
|
||||
|
|
|
|||
Loading…
Reference in a new issue