static qboolean vid_initialized = false;
static qboolean vid_wassuspended = false;
static qboolean vid_usingmouse = false;
+static qboolean vid_usinghidecursor = false;
static qboolean vid_usingvsync = false;
static qboolean vid_usevsync = false;
static HICON hIcon;
if (!fActive)
{
- VID_GrabMouse(false);
+ VID_SetMouse(false, false, false);
if (vid_isfullscreen)
{
ChangeDisplaySettings (NULL, 0);
case WM_MOVE:
window_x = (int) LOWORD(lParam);
window_y = (int) HIWORD(lParam);
- VID_GrabMouse(false);
+ VID_SetMouse(false, false, false);
break;
case WM_KEYDOWN:
//vid_menudrawfn = VID_MenuDraw;
//vid_menukeyfn = VID_MenuKey;
vid_usingmouse = false;
+ vid_usinghidecursor = false;
vid_usingvsync = false;
vid_hidden = false;
vid_initialized = true;
if(vid_initialized == false)
return;
- VID_GrabMouse(false);
+ VID_SetMouse(false, false, false);
VID_RestoreSystemGamma();
vid_initialized = false;
vid_isfullscreen = false;
}
-void VID_GrabMouse(qboolean grab)
+void VID_SetMouse(qboolean fullscreengrab, qboolean relative, qboolean hidecursor)
{
static qboolean restore_spi;
static int originalmouseparms[3];
if (!mouseinitialized)
return;
- if (grab)
+ if (relative)
{
if (!vid_usingmouse)
{
SetCapture (mainwindow);
ClipCursor (&window_rect);
}
- ShowCursor (false);
}
}
else
ClipCursor (NULL);
ReleaseCapture ();
}
- ShowCursor (true);
}
}
+
+ if (vid_usinghidecursor != hidecursor)
+ {
+ vid_usinghidecursor = hidecursor;
+ ShowCursor (!hidecursor);
+ }
}
in_windowmouse_x = current_pos.x - window_x;
in_windowmouse_y = current_pos.y - window_y;
- if (!vid.mouseaim)
+ if (!vid_usingmouse)
return;
#ifdef SUPPORTDIRECTX