diff options
Diffstat (limited to '')
-rw-r--r-- | linden/indra/llwindow/llwindowwin32.cpp | 49 |
1 files changed, 48 insertions, 1 deletions
diff --git a/linden/indra/llwindow/llwindowwin32.cpp b/linden/indra/llwindow/llwindowwin32.cpp index 3c2e730..2cd1353 100644 --- a/linden/indra/llwindow/llwindowwin32.cpp +++ b/linden/indra/llwindow/llwindowwin32.cpp | |||
@@ -2072,7 +2072,54 @@ LRESULT CALLBACK LLWindowWin32::mainWindowProc(HWND h_wnd, UINT u_msg, WPARAM w_ | |||
2072 | break; | 2072 | break; |
2073 | 2073 | ||
2074 | case WM_MBUTTONDOWN: | 2074 | case WM_MBUTTONDOWN: |
2075 | // Handle middle button click | 2075 | // case WM_MBUTTONDBLCLK: |
2076 | { | ||
2077 | // Because we move the cursor position in tllviewerhe app, we need to query | ||
2078 | // to find out where the cursor at the time the event is handled. | ||
2079 | // If we don't do this, many clicks could get buffered up, and if the | ||
2080 | // first click changes the cursor position, all subsequent clicks | ||
2081 | // will occur at the wrong location. JC | ||
2082 | LLCoordWindow cursor_coord_window; | ||
2083 | if (window_imp->mMousePositionModified) | ||
2084 | { | ||
2085 | window_imp->getCursorPosition(&cursor_coord_window); | ||
2086 | window_imp->convertCoords(cursor_coord_window, &gl_coord); | ||
2087 | } | ||
2088 | else | ||
2089 | { | ||
2090 | window_imp->convertCoords(window_coord, &gl_coord); | ||
2091 | } | ||
2092 | MASK mask = gKeyboard->currentMask(TRUE); | ||
2093 | if (window_imp->mCallbacks->handleMiddleMouseDown(window_imp, gl_coord, mask)) | ||
2094 | { | ||
2095 | return 0; | ||
2096 | } | ||
2097 | } | ||
2098 | break; | ||
2099 | |||
2100 | case WM_MBUTTONUP: | ||
2101 | { | ||
2102 | // Because we move the cursor position in tllviewerhe app, we need to query | ||
2103 | // to find out where the cursor at the time the event is handled. | ||
2104 | // If we don't do this, many clicks could get buffered up, and if the | ||
2105 | // first click changes the cursor position, all subsequent clicks | ||
2106 | // will occur at the wrong location. JC | ||
2107 | LLCoordWindow cursor_coord_window; | ||
2108 | if (window_imp->mMousePositionModified) | ||
2109 | { | ||
2110 | window_imp->getCursorPosition(&cursor_coord_window); | ||
2111 | window_imp->convertCoords(cursor_coord_window, &gl_coord); | ||
2112 | } | ||
2113 | else | ||
2114 | { | ||
2115 | window_imp->convertCoords(window_coord, &gl_coord); | ||
2116 | } | ||
2117 | MASK mask = gKeyboard->currentMask(TRUE); | ||
2118 | if (window_imp->mCallbacks->handleMiddleMouseUp(window_imp, gl_coord, mask)) | ||
2119 | { | ||
2120 | return 0; | ||
2121 | } | ||
2122 | } | ||
2076 | break; | 2123 | break; |
2077 | 2124 | ||
2078 | case WM_MOUSEWHEEL: | 2125 | case WM_MOUSEWHEEL: |