Bug 1958711 - Remove reentrancy from nsWindow::OnPaint. r=win-reviewers,handyman

I don't think this should be needed. Painting shouldn't trigger new
invalidations (and nowadays most of the actual compositing doesn't
happen here anyways).

Differential Revision: https://phabricator.services.mozilla.com/D244531
This commit is contained in:
Emilio Cobos Álvarez
2025-04-15 22:55:00 +00:00
parent 8fceeb01b2
commit f60002b09e
3 changed files with 3 additions and 6 deletions

View File

@@ -5025,7 +5025,7 @@ bool nsWindow::ProcessMessageInternal(UINT msg, WPARAM& wParam, LPARAM& lParam,
break;
case WM_PAINT:
*aRetValue = (int)OnPaint(0);
*aRetValue = (int)OnPaint();
result = true;
break;

View File

@@ -606,7 +606,7 @@ class nsWindow final : public nsBaseWidget,
bool OnGesture(WPARAM wParam, LPARAM lParam);
bool OnTouch(WPARAM wParam, LPARAM lParam);
bool OnHotKey(WPARAM wParam, LPARAM lParam);
bool OnPaint(uint32_t aNestingLevel);
bool OnPaint();
void OnWindowPosChanging(WINDOWPOS* info);
void OnWindowPosChanged(WINDOWPOS* wp);
void OnSysColorChanged();

View File

@@ -127,7 +127,7 @@ void nsWindow::ForcePresent() {
}
}
bool nsWindow::OnPaint(uint32_t aNestingLevel) {
bool nsWindow::OnPaint() {
struct FallbackPaintContext {
RefPtr<gfxASurface> mTargetSurface;
RefPtr<DrawTarget> mDt;
@@ -209,9 +209,6 @@ bool nsWindow::OnPaint(uint32_t aNestingLevel) {
if (nsIWidgetListener* listener = GetPaintListener()) {
listener->DidPaintWindow();
}
if (aNestingLevel == 0 && ::GetUpdateRect(mWnd, nullptr, false)) {
OnPaint(1);
}
}
});