(svn r7062) -[win32] Codechange: Remove unneeded WM_MOUSEENTER event, and change mouse behaviour
authorDarkvater
Sun, 05 Nov 2006 01:53:12 +0000
changeset 5021 6fb82e055ceb
parent 5020 e2564f4400b7
child 5022 313d3630a122
(svn r7062) -[win32] Codechange: Remove unneeded WM_MOUSEENTER event, and change mouse behaviour
a bit so that any specific windows inside (eg IME compositor) will have a cursor.
video/win32_v.c
--- a/video/win32_v.c	Sun Nov 05 01:13:08 2006 +0000
+++ b/video/win32_v.c	Sun Nov 05 01:53:12 2006 +0000
@@ -180,9 +180,7 @@
 }
 #endif
 
-/* Windows 95 will not have a WM_MOUSELEAVE message, so define it if
- * needed. There is no such event as WM_MOUSEENTER, we just made this up :) */
-#define WM_MOUSEENTER WM_USER + 1
+/* Windows 95 will not have a WM_MOUSELEAVE message, so define it if needed */
 #if !defined(WM_MOUSELEAVE)
 #define WM_MOUSELEAVE 0x02A3
 #endif
@@ -287,15 +285,12 @@
 			_right_button_down = false;
 			return 0;
 
-		case WM_MOUSEENTER:
-			_cursor.in_window = true;
-			DrawMouseCursor();
-			break;
-
 		case WM_MOUSELEAVE:
 			UndrawMouseCursor();
 			_cursor.in_window = false;
-			break;
+
+			if (!_left_button_down && !_right_button_down) MyShowCursor(true);
+			return 0;
 
 		case WM_MOUSEMOVE: {
 			int x = (int16)LOWORD(lParam);
@@ -303,13 +298,13 @@
 			POINT pt;
 
 			/* If the mouse was not in the window and it has moved it means it has
-			 * come into the window, so send a WM_MOUSEENTER message. Also start
+			 * come into the window, so start drawing the mouse. Also start
 			 * tracking the mouse for exiting the window */
 			if (!_cursor.in_window) {
 				_cursor.in_window = true;
 				SetTimer(hwnd, TID_POLLMOUSE, MOUSE_POLL_DELAY, (TIMERPROC)TrackMouseTimerProc);
 
-				if (hwnd != GetCapture()) PostMessage(hwnd, WM_MOUSEENTER, 0, 0L);
+				DrawMouseCursor();
 			}
 
 			if (_wnd.double_size) {
@@ -391,10 +386,6 @@
 			}
 			break;
 
-		case WM_NCMOUSEMOVE:
-			MyShowCursor(true);
-			return 0;
-
 		case WM_SIZE:
 			if (wParam != SIZE_MINIMIZED) {
 				/* Set maximized flag when we maximize (obviously), but also when we