diff --git a/kernel/trunk/data32.inc b/kernel/trunk/data32.inc index fe4e0fab3f..a4ffafdcad 100644 --- a/kernel/trunk/data32.inc +++ b/kernel/trunk/data32.inc @@ -398,6 +398,8 @@ hd_entries rd 1 ;unused ? 0xfe10 mouse_active rd 1 mouse_pause rd 1 +redrawmouse_unconditional rd 1 + img_background rd 1 mem_BACKGROUND rd 1 static_background_data rd 1 diff --git a/kernel/trunk/hid/mousedrv.inc b/kernel/trunk/hid/mousedrv.inc index 49fd3c0ece..9d0e5c2096 100644 --- a/kernel/trunk/hid/mousedrv.inc +++ b/kernel/trunk/hid/mousedrv.inc @@ -415,6 +415,13 @@ __sys_draw_pointer: movzx edx, word [Y_UNDER] movzx ebx, word [MOUSE_Y] movzx eax, word [MOUSE_X] + cmp [redrawmouse_unconditional], 0 + je @f + mov [redrawmouse_unconditional], 0 + jmp redrawmouse +;-------------------------------------- +align 4 +@@: cmp eax, ecx jne redrawmouse cmp ebx, edx diff --git a/kernel/trunk/kernel.asm b/kernel/trunk/kernel.asm index 0b892c4c82..ff01bd3edd 100644 --- a/kernel/trunk/kernel.asm +++ b/kernel/trunk/kernel.asm @@ -1967,6 +1967,8 @@ restore_default_cursor_before_killing: push esi call [_display.select_cursor] mov [current_cursor], esi + mov [redrawmouse_unconditional], 1 + call [draw_pointer] ret ;------------------------------------------------------------------------------ iglobal