From 9e3bd1f431e91d1a686a77563bec49f874f709ef Mon Sep 17 00:00:00 2001 From: Marcian Lytwyn Date: Thu, 31 Jan 2013 14:54:37 +0000 Subject: [PATCH] Update for windows system cursor processing git-svn-id: svn+ssh://svn.gna.org/svn/gnustep/libs/back/branches/gnustep_testplant_branch@36048 72102866-910b-0410-8b05-ffd578937521 --- Source/win32/WIN32Server.m | 78 ++++++++++++++++++++------------------ 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/Source/win32/WIN32Server.m b/Source/win32/WIN32Server.m index 2a4b134..80f49c1 100644 --- a/Source/win32/WIN32Server.m +++ b/Source/win32/WIN32Server.m @@ -65,9 +65,6 @@ #include -#define CHANGE_GLOBAL_CURSORS - - // Forward declarations... static unsigned int mask_for_keystate(BYTE *keyState); @@ -128,26 +125,51 @@ void loadsystemcursors(void) void setsystemcursors(HCURSOR cursorId) { -#if defined(CHANGE_GLOBAL_CURSORS) - SetSystemCursor(CopyCursor(cursorId), OCR_NORMAL); - SetSystemCursor(CopyCursor(cursorId), OCR_IBEAM); - SetSystemCursor(CopyCursor(cursorId), OCR_SIZEWE); - SetSystemCursor(CopyCursor(cursorId), OCR_SIZENS); - SetSystemCursor(CopyCursor(cursorId), OCR_SIZENESW); - SetSystemCursor(CopyCursor(cursorId), OCR_SIZENWSE); -#endif + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + if ([defaults objectForKey: @"GSDoesNotChangeSystemMouseCursors"] == NO) + { + SetSystemCursor(CopyCursor(cursorId), OCR_NORMAL); + SetSystemCursor(CopyCursor(cursorId), OCR_IBEAM); + SetSystemCursor(CopyCursor(cursorId), OCR_SIZEWE); + SetSystemCursor(CopyCursor(cursorId), OCR_SIZENS); + SetSystemCursor(CopyCursor(cursorId), OCR_SIZENESW); + SetSystemCursor(CopyCursor(cursorId), OCR_SIZENWSE); + } } void restoresystemcursors(void) { -#if defined(CHANGE_GLOBAL_CURSORS) - SetSystemCursor(CopyCursor(g_arrowCursorId), OCR_NORMAL); - SetSystemCursor(CopyCursor(g_ibeamCursorId), OCR_IBEAM); - SetSystemCursor(CopyCursor(g_sizeweCursorId), OCR_SIZEWE); - SetSystemCursor(CopyCursor(g_sizensCursorId), OCR_SIZENS); - SetSystemCursor(CopyCursor(g_sizeneswCursorId), OCR_SIZENESW); - SetSystemCursor(CopyCursor(g_sizenwseCursorId), OCR_SIZENWSE); -#endif + NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; + if ([defaults objectForKey: @"GSDoesNotChangeSystemMouseCursors"] == NO) + { + SetSystemCursor(CopyCursor(g_arrowCursorId), OCR_NORMAL); + SetSystemCursor(CopyCursor(g_ibeamCursorId), OCR_IBEAM); + SetSystemCursor(CopyCursor(g_sizeweCursorId), OCR_SIZEWE); + SetSystemCursor(CopyCursor(g_sizensCursorId), OCR_SIZENS); + SetSystemCursor(CopyCursor(g_sizeneswCursorId), OCR_SIZENESW); + SetSystemCursor(CopyCursor(g_sizenwseCursorId), OCR_SIZENWSE); + } +} + +// Need to capture the DLL instance handle.... +BOOL WINAPI DllMain(HANDLE hinstDLL, DWORD dwReason, LPVOID lpvReserved) +{ + switch (dwReason) + { + case DLL_PROCESS_ATTACH: + // Save the DLL instance handle... + g_handleDLL = hinstDLL; + + // Load system cursor resources for overriding system level cursors on + // capture and release mouse sequences... + loadsystemcursors(); + + break; + + case DLL_PROCESS_DETACH: + break; + } + return TRUE; } int istrackingmouse(void) @@ -542,20 +564,6 @@ BOOL CALLBACK LoadDisplayMonitorInfo(HMONITOR hMonitor, */ -// Need to capture the DLL instance handle.... -BOOL WINAPI DllMain(HANDLE hinstDLL, DWORD dwReason, LPVOID lpvReserved) -{ - switch (dwReason) - { - case DLL_PROCESS_ATTACH: - g_handleDLL = hinstDLL; - break; - case DLL_PROCESS_DETACH: - break; - } - return TRUE; -} - - (id) initWithAttributes: (NSDictionary *)info { self = [super initWithAttributes: info]; @@ -565,10 +573,6 @@ BOOL WINAPI DllMain(HANDLE hinstDLL, DWORD dwReason, LPVOID lpvReserved) [self _initWin32Context]; [super initWithAttributes: info]; - // Load system cursor resources for overriding system level cursors on - // capture and release mouse sequences... - loadsystemcursors(); - systemCursors = RETAIN([NSMutableDictionary dictionary]); monitorInfo = RETAIN([NSMutableArray array]); EnumDisplayMonitors(NULL, NULL, (MONITORENUMPROC)LoadDisplayMonitorInfo, (LPARAM)monitorInfo);