| 2340 | } |
| 2341 | |
| 2342 | void QKeyMapper_Worker::postMouseButton(HWND hwnd, const QString &mousebutton, int keyupdown, const QPoint &mousepoint) |
| 2343 | { |
| 2344 | UINT messageMouseButton; |
| 2345 | WPARAM wParam = 0; |
| 2346 | int x = 0; |
| 2347 | int y = 0; |
| 2348 | |
| 2349 | if (mousepoint.x() >= 0 && mousepoint.y() >= 0) { |
| 2350 | x = mousepoint.x(); |
| 2351 | y = mousepoint.y(); |
| 2352 | } |
| 2353 | else { |
| 2354 | bool valid_point = true; |
| 2355 | POINT currentPos; |
| 2356 | if (!GetCursorPos(¤tPos)) { |
| 2357 | #ifdef DEBUG_LOGOUT_ON |
| 2358 | qDebug() << "[postMouseButton]" << "GetCursorPos error! ->" << GetLastError();; |
| 2359 | #endif |
| 2360 | valid_point = false; |
| 2361 | } |
| 2362 | |
| 2363 | if (valid_point && !ScreenToClient(hwnd, ¤tPos)) { |
| 2364 | #ifdef DEBUG_LOGOUT_ON |
| 2365 | qDebug() << "[postMouseButton]" << "ScreenToClient error! hwnd:" << hwnd << ", currentPos.x:" << currentPos.x << ", currentPos.y:" << currentPos.y << ", GetLastError:" << GetLastError(); |
| 2366 | #endif |
| 2367 | valid_point = false; |
| 2368 | } |
| 2369 | |
| 2370 | if (valid_point) { |
| 2371 | x = currentPos.x; |
| 2372 | y = currentPos.y; |
| 2373 | } |
| 2374 | } |
| 2375 | LPARAM lParam = MAKELPARAM(x, y); |
| 2376 | |
| 2377 | if (mousebutton == "Mouse-L") { |
| 2378 | messageMouseButton = (keyupdown == KEY_DOWN) ? WM_LBUTTONDOWN : WM_LBUTTONUP; |
| 2379 | wParam = MK_LBUTTON; |
| 2380 | } |
| 2381 | else if (mousebutton == "Mouse-R") { |
| 2382 | messageMouseButton = (keyupdown == KEY_DOWN) ? WM_RBUTTONDOWN : WM_RBUTTONUP; |
| 2383 | wParam = MK_RBUTTON; |
| 2384 | } |
| 2385 | else if (mousebutton == "Mouse-M") { |
| 2386 | messageMouseButton = (keyupdown == KEY_DOWN) ? WM_MBUTTONDOWN : WM_MBUTTONUP; |
| 2387 | wParam = MK_MBUTTON; |
| 2388 | } |
| 2389 | else if (mousebutton == "Mouse-X1") { |
| 2390 | messageMouseButton = (keyupdown == KEY_DOWN) ? WM_XBUTTONDOWN : WM_XBUTTONUP; |
| 2391 | wParam = MAKEWPARAM(MK_XBUTTON1, XBUTTON1); |
| 2392 | } |
| 2393 | else if (mousebutton == "Mouse-X2") { |
| 2394 | messageMouseButton = (keyupdown == KEY_DOWN) ? WM_XBUTTONDOWN : WM_XBUTTONUP; |
| 2395 | wParam = MAKEWPARAM(MK_XBUTTON2, XBUTTON2); |
| 2396 | } |
| 2397 | else { |
| 2398 | #ifdef DEBUG_LOGOUT_ON |
| 2399 | qDebug() << "[postMouseButton]" << "Invalid Mouse Button Name :" << mousebutton; |
nothing calls this directly
no outgoing calls
no test coverage detected