зеркало из https://github.com/mozilla/pjs.git
Bug 555081 - Fix for mouse capture now that ChildWindow is gone from the main window. r=jmathies.
This commit is contained in:
Родитель
13a44c59bf
Коммит
bafb4a7737
|
@ -3735,6 +3735,25 @@ PRBool nsWindow::DispatchMouseEvent(PRUint32 aEventType, WPARAM wParam,
|
|||
return result;
|
||||
}
|
||||
|
||||
switch (aEventType) {
|
||||
case NS_MOUSE_BUTTON_DOWN:
|
||||
CaptureMouse(PR_TRUE);
|
||||
break;
|
||||
|
||||
// NS_MOUSE_MOVE and NS_MOUSE_EXIT are here because we need to make sure capture flag
|
||||
// isn't left on after a drag where we wouldn't see a button up message (see bug 324131).
|
||||
case NS_MOUSE_BUTTON_UP:
|
||||
case NS_MOUSE_MOVE:
|
||||
case NS_MOUSE_EXIT:
|
||||
if (!(wParam & (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON)) && mIsInMouseCapture)
|
||||
CaptureMouse(PR_FALSE);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
} // switch
|
||||
|
||||
nsIntPoint eventPoint;
|
||||
eventPoint.x = GET_X_LPARAM(lParam);
|
||||
eventPoint.y = GET_Y_LPARAM(lParam);
|
||||
|
@ -8023,39 +8042,6 @@ LPARAM nsWindow::lParamToClient(LPARAM lParam)
|
|||
**************************************************************
|
||||
**************************************************************/
|
||||
|
||||
// Deal with all sort of mouse event
|
||||
PRBool ChildWindow::DispatchMouseEvent(PRUint32 aEventType, WPARAM wParam, LPARAM lParam,
|
||||
PRBool aIsContextMenuKey, PRInt16 aButton, PRUint16 aInputSource)
|
||||
{
|
||||
PRBool result = PR_FALSE;
|
||||
|
||||
if (nsnull == mEventCallback) {
|
||||
return result;
|
||||
}
|
||||
|
||||
switch (aEventType) {
|
||||
case NS_MOUSE_BUTTON_DOWN:
|
||||
CaptureMouse(PR_TRUE);
|
||||
break;
|
||||
|
||||
// NS_MOUSE_MOVE and NS_MOUSE_EXIT are here because we need to make sure capture flag
|
||||
// isn't left on after a drag where we wouldn't see a button up message (see bug 324131).
|
||||
case NS_MOUSE_BUTTON_UP:
|
||||
case NS_MOUSE_MOVE:
|
||||
case NS_MOUSE_EXIT:
|
||||
if (!(wParam & (MK_LBUTTON | MK_MBUTTON | MK_RBUTTON)) && mIsInMouseCapture)
|
||||
CaptureMouse(PR_FALSE);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
|
||||
} // switch
|
||||
|
||||
return nsWindow::DispatchMouseEvent(aEventType, wParam, lParam,
|
||||
aIsContextMenuKey, aButton, aInputSource);
|
||||
}
|
||||
|
||||
// return the style for a child nsWindow
|
||||
DWORD ChildWindow::WindowStyle()
|
||||
{
|
||||
|
|
|
@ -564,10 +564,6 @@ class ChildWindow : public nsWindow {
|
|||
|
||||
public:
|
||||
ChildWindow() {}
|
||||
PRBool DispatchMouseEvent(PRUint32 aEventType, WPARAM wParam, LPARAM lParam,
|
||||
PRBool aIsContextMenuKey = PR_FALSE,
|
||||
PRInt16 aButton = nsMouseEvent::eLeftButton,
|
||||
PRUint16 aInputSource = nsIDOMNSMouseEvent::MOZ_SOURCE_MOUSE);
|
||||
|
||||
protected:
|
||||
virtual DWORD WindowStyle();
|
||||
|
|
Загрузка…
Ссылка в новой задаче