Merge branch 'mr/ieframe-overpaint-protection' into 'master'

ieframe: Forward WM_PAINT messages to the document host and all its child windows.

See merge request wine/wine!3416
This commit is contained in:
Torge Matthies 2024-11-19 06:04:04 +00:00
commit 6932e6618d
3 changed files with 20 additions and 0 deletions

View file

@ -377,6 +377,14 @@ static LRESULT WINAPI doc_view_proc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM l
switch(msg) {
case WM_SIZE:
return resize_document(This, LOWORD(lParam), HIWORD(lParam));
case WM_PAINT:
{
LRESULT ret = DefWindowProcW(hwnd, msg, wParam, lParam);
HWND child = NULL;
while ((child = FindWindowExW(hwnd, child, NULL, NULL)))
RedrawWindow(child, NULL, 0, RDW_INVALIDATE | RDW_ERASE | RDW_ALLCHILDREN);
return ret;
}
}
return DefWindowProcW(hwnd, msg, wParam, lParam);

View file

@ -693,6 +693,12 @@ static LRESULT WINAPI ie_window_proc(HWND hwnd, UINT msg, WPARAM wparam, LPARAM
return process_dochost_tasks(&This->doc_host);
case WM_UPDATEADDRBAR:
return update_addrbar(This, lparam);
case WM_PAINT:
{
LRESULT ret = DefWindowProcW(hwnd, msg, wparam, lparam);
InvalidateRect(This->doc_host.hwnd, NULL, TRUE);
return ret;
}
}
return DefWindowProcW(hwnd, msg, wparam, lparam);
}

View file

@ -89,6 +89,12 @@ static LRESULT WINAPI shell_embedding_proc(HWND hwnd, UINT msg, WPARAM wParam, L
case WM_KILLFOCUS:
notify_on_focus(This, FALSE);
break;
case WM_PAINT:
{
LRESULT ret = DefWindowProcW(hwnd, msg, wParam, lParam);
InvalidateRect(This->doc_host.hwnd, NULL, TRUE);
return ret;
}
}
return DefWindowProcW(hwnd, msg, wParam, lParam);