Bug 590035. Middle clicking tab bar with custom window drawing does not open a new tab. r=jmathies a=blocking-final
--- a/widget/src/windows/nsWindow.cpp
+++ b/widget/src/windows/nsWindow.cpp
@@ -4889,18 +4889,36 @@ PRBool nsWindow::ProcessMessage(UINT msg
case WM_MBUTTONUP:
result = DispatchMouseEvent(NS_MOUSE_BUTTON_UP, wParam, lParam, PR_FALSE,
nsMouseEvent::eMiddleButton, MOUSE_INPUT_SOURCE());
DispatchPendingEvents();
break;
case WM_MBUTTONDBLCLK:
- result = DispatchMouseEvent(NS_MOUSE_BUTTON_DOWN, wParam, lParam, PR_FALSE,
+ result = DispatchMouseEvent(NS_MOUSE_DOUBLECLICK, wParam, lParam, PR_FALSE,
+ nsMouseEvent::eMiddleButton, MOUSE_INPUT_SOURCE());
+ break;
+
+ case WM_NCMBUTTONDOWN:
+ result = DispatchMouseEvent(NS_MOUSE_BUTTON_DOWN, 0, lParamToClient(lParam), PR_FALSE,
nsMouseEvent::eMiddleButton, MOUSE_INPUT_SOURCE());
+ DispatchPendingEvents();
+ break;
+
+ case WM_NCMBUTTONUP:
+ result = DispatchMouseEvent(NS_MOUSE_BUTTON_UP, 0, lParamToClient(lParam), PR_FALSE,
+ nsMouseEvent::eMiddleButton, MOUSE_INPUT_SOURCE());
+ DispatchPendingEvents();
+ break;
+
+ case WM_NCMBUTTONDBLCLK:
+ result = DispatchMouseEvent(NS_MOUSE_DOUBLECLICK, 0, lParamToClient(lParam), PR_FALSE,
+ nsMouseEvent::eMiddleButton, MOUSE_INPUT_SOURCE());
+ DispatchPendingEvents();
break;
case WM_RBUTTONDOWN:
{
result = DispatchMouseEvent(NS_MOUSE_BUTTON_DOWN, wParam, lParam, PR_FALSE,
nsMouseEvent::eRightButton, MOUSE_INPUT_SOURCE());
DispatchPendingEvents();
}