summarylogtreecommitdiffstats
path: root/win32mouse.patch
blob: 9c7c54c0bec7eb0f09fbd39d8cc3b7810786b5c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
--- ois-v1-3/src/win32/Win32Mouse.cpp	2010-04-04 17:56:16.000000000 +0200
+++ patched/src/win32/Win32Mouse.cpp	2012-06-17 21:14:07.130980000 +0200
@@ -112,6 +112,52 @@
 	bool axesMoved = false;
 	//Accumulate all axis movements for one axesMove message..
 	//Buttons are fired off as they are found
+	//FIXME: Not implemented in mingw yet
+#ifdef __MINGW32__
+	for(unsigned int i = 0; i < entries; ++i )
+	{
+		switch( diBuff[i].dwOfs )
+		{
+			case 12:
+				if(!_doMouseClick(0, diBuff[i])) return;
+				break;
+			case 13:
+				if(!_doMouseClick(1, diBuff[i])) return;
+				break;
+			case 14:
+				if(!_doMouseClick(2, diBuff[i])) return;
+				break;
+			case 15:
+				if(!_doMouseClick(3, diBuff[i])) return;
+				break;
+			case 16:
+				if(!_doMouseClick(4, diBuff[i])) return;
+				break;	
+			case 17:
+				if(!_doMouseClick(5, diBuff[i])) return;
+				break;
+			case 18:
+				if(!_doMouseClick(6, diBuff[i])) return;
+				break;
+			case 19:
+				if(!_doMouseClick(7, diBuff[i])) return;
+				break;
+			case 0:
+				mState.X.rel += diBuff[i].dwData;
+				axesMoved = true;
+				break;
+			case 4:
+				mState.Y.rel += diBuff[i].dwData;
+				axesMoved = true;
+				break;
+			case 8:
+				mState.Z.rel += diBuff[i].dwData;
+				axesMoved = true;
+				break;
+			default: break;
+		} //end switch
+	}//end for
+#else
 	for(unsigned int i = 0; i < entries; ++i )
 	{
 		switch( diBuff[i].dwOfs )
@@ -155,6 +201,7 @@
 			default: break;
 		} //end switch
 	}//end for
+#endif
 
 	if( axesMoved )
 	{