X-Git-Url: http://de.git.xonotic.org/?a=blobdiff_plain;f=vid_wgl.c;h=b5acec4016639042de90d6629e01b236f07a3d50;hb=736d79eca9d5b23370fdcdec2797d61575fccfce;hp=0c55110216efe94480c7e30982e55de0cd7590d7;hpb=facaed0509e7b7c30d6ec3f9d3438ee21f77c6e8;p=xonotic%2Fdarkplaces.git diff --git a/vid_wgl.c b/vid_wgl.c index 0c551102..b5acec40 100644 --- a/vid_wgl.c +++ b/vid_wgl.c @@ -95,6 +95,7 @@ static DEVMODE gdevmode, initialdevmode; 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; @@ -243,8 +244,6 @@ static void IN_StartupMouse (void); void VID_Finish (void) { - qboolean vid_usemouse; - vid_usevsync = vid_vsync.integer && !cls.timedemo && gl_videosyncavailable; if (vid_usingvsync != vid_usevsync && gl_videosyncavailable) { @@ -429,7 +428,7 @@ void AppActivate(BOOL fActive, BOOL minimize) if (!fActive) { - VID_GrabMouse(false); + VID_SetMouse(false, false, false); if (vid_isfullscreen) { ChangeDisplaySettings (NULL, 0); @@ -503,7 +502,7 @@ LONG WINAPI MainWndProc (HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam) 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: @@ -1222,6 +1221,7 @@ int VID_InitMode (int fullscreen, int width, int height, int bpp, int refreshrat //vid_menudrawfn = VID_MenuDraw; //vid_menukeyfn = VID_MenuKey; vid_usingmouse = false; + vid_usinghidecursor = false; vid_usingvsync = false; vid_hidden = false; vid_initialized = true; @@ -1245,7 +1245,7 @@ void VID_Shutdown (void) if(vid_initialized == false) return; - VID_GrabMouse(false); + VID_SetMouse(false, false, false); VID_RestoreSystemGamma(); vid_initialized = false; @@ -1267,7 +1267,7 @@ void VID_Shutdown (void) 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]; @@ -1275,7 +1275,7 @@ void VID_GrabMouse(qboolean grab) if (!mouseinitialized) return; - if (grab) + if (relative) { if (!vid_usingmouse) { @@ -1313,7 +1313,6 @@ void VID_GrabMouse(qboolean grab) SetCapture (mainwindow); ClipCursor (&window_rect); } - ShowCursor (false); } } else @@ -1338,9 +1337,14 @@ void VID_GrabMouse(qboolean grab) ClipCursor (NULL); ReleaseCapture (); } - ShowCursor (true); } } + + if (vid_usinghidecursor != hidecursor) + { + vid_usinghidecursor = hidecursor; + ShowCursor (!hidecursor); + } }