mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
[OS/2] Bug 418645: content of mplayer plugin spills over into content area when scrolling, r=mkaply
This commit is contained in:
parent
e6daab3c80
commit
10ee622678
@ -2272,6 +2272,32 @@ NS_METHOD nsWindow::SetColorMap(nsColorMap *aColorMap)
|
|||||||
return NS_ERROR_NOT_IMPLEMENTED;
|
return NS_ERROR_NOT_IMPLEMENTED;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// Notify a child window of a coming move by sending it a WM_VRNDISABLED
|
||||||
|
// message. Only do that if it's not one of ours like e.g. plugin windows.
|
||||||
|
//
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
BOOL nsWindow::NotifyForeignChildWindows(HWND aWnd)
|
||||||
|
{
|
||||||
|
HENUM hEnum = WinBeginEnumWindows(aWnd);
|
||||||
|
HWND hwnd;
|
||||||
|
|
||||||
|
while ((hwnd = WinGetNextWindow(hEnum)) != NULLHANDLE) {
|
||||||
|
char className[19];
|
||||||
|
WinQueryClassName(hwnd, 19, className);
|
||||||
|
if (strcmp(className, WindowClass()) != 0) {
|
||||||
|
// This window is not one of our windows so notify it (and wait for
|
||||||
|
// the call to return so that the plugin has time to react)
|
||||||
|
WinSendMsg(hwnd, WM_VRNDISABLED, MPVOID, MPVOID);
|
||||||
|
} else {
|
||||||
|
// Recurse starting at this Mozilla child window.
|
||||||
|
NotifyForeignChildWindows(hwnd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return WinEndEnumWindows(hEnum);
|
||||||
|
}
|
||||||
|
|
||||||
//-------------------------------------------------------------------------
|
//-------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// Scroll the bits of a window
|
// Scroll the bits of a window
|
||||||
@ -2298,6 +2324,7 @@ NS_METHOD nsWindow::Scroll(PRInt32 aDx, PRInt32 aDy, nsRect *aClipRect)
|
|||||||
HPS hps = 0;
|
HPS hps = 0;
|
||||||
CheckDragStatus(ACTION_SCROLL, &hps);
|
CheckDragStatus(ACTION_SCROLL, &hps);
|
||||||
|
|
||||||
|
NotifyForeignChildWindows(mWnd);
|
||||||
WinScrollWindow( mWnd, aDx, -aDy, aClipRect ? &rcl : 0, 0, 0,
|
WinScrollWindow( mWnd, aDx, -aDy, aClipRect ? &rcl : 0, 0, 0,
|
||||||
0, SW_SCROLLCHILDREN | SW_INVALIDATERGN);
|
0, SW_SCROLLCHILDREN | SW_INVALIDATERGN);
|
||||||
Update();
|
Update();
|
||||||
|
@ -333,6 +333,8 @@ protected:
|
|||||||
HBITMAP CreateTransparencyMask(PRInt32 format, PRUint8* aImageData,
|
HBITMAP CreateTransparencyMask(PRInt32 format, PRUint8* aImageData,
|
||||||
PRUint32 aWidth, PRUint32 aHeight);
|
PRUint32 aWidth, PRUint32 aHeight);
|
||||||
|
|
||||||
|
BOOL NotifyForeignChildWindows(HWND aWnd);
|
||||||
|
|
||||||
// Enumeration of the methods which are accessible on the PM thread
|
// Enumeration of the methods which are accessible on the PM thread
|
||||||
enum {
|
enum {
|
||||||
CREATE,
|
CREATE,
|
||||||
|
Loading…
Reference in New Issue
Block a user