mirror of
https://github.com/FunkyFr3sh/cnc-ddraw.git
synced 2025-03-24 17:49:52 +01:00
improve cursor lock
This commit is contained in:
parent
2c2a83d93c
commit
a399797982
1
inc/dd.h
1
inc/dd.h
@ -109,6 +109,7 @@ typedef struct CNCDDRAW
|
|||||||
BOOL wine;
|
BOOL wine;
|
||||||
BOOL altenter;
|
BOOL altenter;
|
||||||
BOOL hidecursor;
|
BOOL hidecursor;
|
||||||
|
HCURSOR old_cursor;
|
||||||
BOOL accurate_timers;
|
BOOL accurate_timers;
|
||||||
BOOL resizable;
|
BOOL resizable;
|
||||||
BOOL nonexclusive;
|
BOOL nonexclusive;
|
||||||
|
@ -64,6 +64,8 @@ void mouse_lock()
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
real_SetCursor(g_ddraw->old_cursor);
|
||||||
|
|
||||||
if (g_ddraw->hidecursor)
|
if (g_ddraw->hidecursor)
|
||||||
{
|
{
|
||||||
g_ddraw->hidecursor = FALSE;
|
g_ddraw->hidecursor = FALSE;
|
||||||
@ -125,6 +127,8 @@ void mouse_unlock()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
real_SetCursor(LoadCursor(NULL, IDC_ARROW));
|
||||||
|
|
||||||
real_ClipCursor(NULL);
|
real_ClipCursor(NULL);
|
||||||
|
|
||||||
real_SetCursorPos(
|
real_SetCursorPos(
|
||||||
|
@ -122,7 +122,7 @@ int WINAPI fake_ShowCursor(BOOL bShow)
|
|||||||
HCURSOR WINAPI fake_SetCursor(HCURSOR hCursor)
|
HCURSOR WINAPI fake_SetCursor(HCURSOR hCursor)
|
||||||
{
|
{
|
||||||
if (g_ddraw && !g_ddraw->handlemouse && (g_ddraw->locked || g_ddraw->devmode))
|
if (g_ddraw && !g_ddraw->handlemouse && (g_ddraw->locked || g_ddraw->devmode))
|
||||||
return real_SetCursor(hCursor);
|
return real_SetCursor(g_ddraw->old_cursor = hCursor);
|
||||||
|
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
@ -102,7 +102,10 @@ LRESULT CALLBACK fake_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam
|
|||||||
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
||||||
case HTCLIENT:
|
case HTCLIENT:
|
||||||
if (!g_ddraw->locked)
|
if (!g_ddraw->locked)
|
||||||
|
{
|
||||||
|
real_SetCursor(LoadCursor(NULL, IDC_ARROW));
|
||||||
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
return DefWindowProc(hWnd, uMsg, wParam, lParam);
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user