summaryrefslogtreecommitdiff
path: root/indra/llwindow/llwindowwin32.cpp
diff options
context:
space:
mode:
authorAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-09-07 20:17:26 +0300
committerAndrey Kleshchev <117672381+akleshchev@users.noreply.github.com>2026-09-08 21:05:06 +0300
commitc37498bb4017e89654c0687a3f84792ecb445c47 (patch)
treeebf9228a8df5a590f0df1090b854a9b8418ac4b1 /indra/llwindow/llwindowwin32.cpp
parentd5d5fd815f2833bdc968d35a213a12380ac0dec6 (diff)
#6243 Double RMB support
Diffstat (limited to 'indra/llwindow/llwindowwin32.cpp')
-rw-r--r--indra/llwindow/llwindowwin32.cpp45
1 files changed, 42 insertions, 3 deletions
diff --git a/indra/llwindow/llwindowwin32.cpp b/indra/llwindow/llwindowwin32.cpp
index a93a3150e1..bfdf011167 100644
--- a/indra/llwindow/llwindowwin32.cpp
+++ b/indra/llwindow/llwindowwin32.cpp
@@ -3087,8 +3087,6 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_LBUTTONDBLCLK");
window_imp->postMouseButtonEvent([=]()
{
- //RN: ignore right button double clicks for now
- //case WM_RBUTTONDBLCLK:
if (!sHandleDoubleClick)
{
sHandleDoubleClick = true;
@@ -3098,7 +3096,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
// generate move event to update mouse coordinates
window_imp->mCursorPosition = window_coord;
- window_imp->mCallbacks->handleDoubleClick(window_imp, window_imp->mCursorPosition.convert(), mask);
+ window_imp->mCallbacks->handleLeftMouseDoubleClick(window_imp, window_imp->mCursorPosition.convert(), mask);
});
return 0;
@@ -3127,6 +3125,24 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
return 0;
}
case WM_RBUTTONDBLCLK:
+ {
+ LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_RBUTTONDBLCLK");
+ window_imp->postMouseButtonEvent([=]()
+ {
+ if (!sHandleDoubleClick)
+ {
+ sHandleDoubleClick = true;
+ return;
+ }
+ MASK mask = gKeyboard->currentMask(true);
+
+ // generate move event to update mouse coordinates
+ window_imp->mCursorPosition = window_coord;
+ window_imp->mCallbacks->handleRightMouseDoubleClick(window_imp, window_imp->mCursorPosition.convert(), mask);
+ });
+
+ return 0;
+ }
case WM_RBUTTONDOWN:
{
LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_RBUTTONDOWN");
@@ -3164,6 +3180,25 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
}
break;
+ case WM_MBUTTONDBLCLK:
+ {
+ LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_MBUTTONDBLCLK");
+ window_imp->postMouseButtonEvent([=]()
+ {
+ if (!sHandleDoubleClick)
+ {
+ sHandleDoubleClick = true;
+ return;
+ }
+ MASK mask = gKeyboard->currentMask(true);
+
+ // generate move event to update mouse coordinates
+ window_imp->mCursorPosition = window_coord;
+ window_imp->mCallbacks->handleMiddleMouseDoubleClick(window_imp, window_imp->mCursorPosition.convert(), mask);
+ });
+ return 0;
+ }
+
case WM_MBUTTONDOWN:
// case WM_MBUTTONDBLCLK:
{
@@ -3181,6 +3216,7 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
window_imp->mCallbacks->handleMiddleMouseDown(window_imp, window_imp->mCursorPosition.convert(), mask);
});
}
+ return 0;
}
break;
@@ -3197,6 +3233,9 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_
}
}
break;
+ case WM_XBUTTONDBLCLK:
+ // TODO: not supported yet.
+ // Fall through to WM_XBUTTONDOWN for now.
case WM_XBUTTONDOWN:
{
LL_PROFILE_ZONE_NAMED_CATEGORY_WIN32("mwp - WM_XBUTTONDOWN");