(svn r7157) -Fix [FS#221, SF1168820]: Some mouse events possibly lost under high CPU load, handle
mouse input right away instead of waiting for GameLoop. (KUDr)
This commit is contained in:
@@ -404,6 +404,7 @@ static void QZ_MouseMovedEvent(int x, int y)
|
||||
_cursor.pos.y = y;
|
||||
_cursor.dirty = true;
|
||||
}
|
||||
HandleMouseEvents();
|
||||
}
|
||||
|
||||
|
||||
@@ -417,6 +418,7 @@ static void QZ_MouseButtonEvent(int button, BOOL down)
|
||||
_left_button_down = false;
|
||||
_left_button_clicked = false;
|
||||
}
|
||||
HandleMouseEvents();
|
||||
break;
|
||||
|
||||
case 1:
|
||||
@@ -426,6 +428,7 @@ static void QZ_MouseButtonEvent(int button, BOOL down)
|
||||
} else {
|
||||
_right_button_down = false;
|
||||
}
|
||||
HandleMouseEvents();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -325,6 +325,7 @@ static int PollEvent(void)
|
||||
_cursor.pos.y = ev.motion.y;
|
||||
_cursor.dirty = true;
|
||||
}
|
||||
HandleMouseEvents();
|
||||
break;
|
||||
|
||||
case SDL_MOUSEBUTTONDOWN:
|
||||
@@ -347,6 +348,7 @@ static int PollEvent(void)
|
||||
|
||||
default: break;
|
||||
}
|
||||
HandleMouseEvents();
|
||||
break;
|
||||
|
||||
case SDL_MOUSEBUTTONUP:
|
||||
@@ -360,6 +362,7 @@ static int PollEvent(void)
|
||||
} else if (ev.button.button == SDL_BUTTON_RIGHT) {
|
||||
_right_button_down = false;
|
||||
}
|
||||
HandleMouseEvents();
|
||||
break;
|
||||
|
||||
case SDL_ACTIVEEVENT:
|
||||
|
||||
@@ -266,23 +266,27 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
|
||||
case WM_LBUTTONDOWN:
|
||||
SetCapture(hwnd);
|
||||
_left_button_down = true;
|
||||
HandleMouseEvents();
|
||||
return 0;
|
||||
|
||||
case WM_LBUTTONUP:
|
||||
ReleaseCapture();
|
||||
_left_button_down = false;
|
||||
_left_button_clicked = false;
|
||||
HandleMouseEvents();
|
||||
return 0;
|
||||
|
||||
case WM_RBUTTONDOWN:
|
||||
SetCapture(hwnd);
|
||||
_right_button_down = true;
|
||||
_right_button_clicked = true;
|
||||
HandleMouseEvents();
|
||||
return 0;
|
||||
|
||||
case WM_RBUTTONUP:
|
||||
ReleaseCapture();
|
||||
_right_button_down = false;
|
||||
HandleMouseEvents();
|
||||
return 0;
|
||||
|
||||
case WM_MOUSELEAVE:
|
||||
@@ -290,6 +294,7 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
|
||||
_cursor.in_window = false;
|
||||
|
||||
if (!_left_button_down && !_right_button_down) MyShowCursor(true);
|
||||
HandleMouseEvents();
|
||||
return 0;
|
||||
|
||||
case WM_MOUSEMOVE: {
|
||||
@@ -337,6 +342,7 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
|
||||
_cursor.dirty = true;
|
||||
}
|
||||
MyShowCursor(false);
|
||||
HandleMouseEvents();
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -483,6 +489,7 @@ static LRESULT CALLBACK WndProcGdi(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lP
|
||||
} else if (delta > 0) {
|
||||
_cursor.wheel--;
|
||||
}
|
||||
HandleMouseEvents();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user