aboutsummaryrefslogtreecommitdiffstats
path: root/vxd_svga_mouse.c
diff options
context:
space:
mode:
authorJaroslav Hensl <jara@hensl.cz>2024-07-05 00:52:28 +0200
committerJaroslav Hensl <jara@hensl.cz>2024-07-05 00:52:28 +0200
commite04537c2481cfdf3537c9e108fb8632181151d2c (patch)
tree78461a8cddbbb760e3330b51195929bd78c7ab4a /vxd_svga_mouse.c
parent053673efe6ea7d8bc19c45504ce9822c6145cf2c (diff)
downloadvmdisp9x-e04537c2481cfdf3537c9e108fb8632181151d2c.tar.gz
eliminate PAGECONTIG, TLB flush when _PageAllocate
Diffstat (limited to 'vxd_svga_mouse.c')
-rw-r--r--vxd_svga_mouse.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/vxd_svga_mouse.c b/vxd_svga_mouse.c
index 9059a8b..375d42d 100644
--- a/vxd_svga_mouse.c
+++ b/vxd_svga_mouse.c
@@ -148,13 +148,14 @@ BOOL SVGA_mouse_load()
void *mb;
CURSORSHAPE *cur;
- SVGA_mouse_hide();
-
- hw_cursor_valid = FALSE;
+ SVGA_mouse_hide(TRUE);
mb = mouse_buffer();
- if(!mb) return FALSE;
+ if(!mb)
+ {
+ return FALSE;
+ }
cur = (CURSORSHAPE*)mb;
if(cur->cx == 0 || cur->cy == 0)
@@ -232,13 +233,13 @@ void SVGA_mouse_show()
}
}
-void SVGA_mouse_hide()
+void SVGA_mouse_hide(BOOL invalidate)
{
dbg_printf(dbg_hw_mouse_hide);
gSVGA.fifoMem[SVGA_FIFO_CURSOR_SCREEN_ID] = 0;
gSVGA.fifoMem[SVGA_FIFO_CURSOR_ON] = 0;
-
+
/* vbox bug, move cursor outside screen */
if((st_flags & ST_CURSOR_HIDEABLE) == 0)
{
@@ -248,5 +249,10 @@ void SVGA_mouse_hide()
gSVGA.fifoMem[SVGA_FIFO_CURSOR_COUNT]++;
+ if(invalidate)
+ {
+ hw_cursor_valid = FALSE;
+ }
+
hw_cursor_visible = FALSE;
}