From c75dcd253d75ea93608410d90a3ce1b605590af0 Mon Sep 17 00:00:00 2001 From: thestig Date: Mon, 14 Nov 2016 13:15:47 -0800 Subject: Invalidate a slightly larger rect when updating popup annotations. It looks like sometimes there are rounding errors in the display pipeline when displaying / hiding popup annotations. Compensate by rouding up the damaged rect slightly. BUG=chromium:662804 Review-Url: https://codereview.chromium.org/2492733002 --- fpdfsdk/cpdfsdk_baannothandler.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/fpdfsdk/cpdfsdk_baannothandler.cpp b/fpdfsdk/cpdfsdk_baannothandler.cpp index 5cabef994a..617d88fd41 100644 --- a/fpdfsdk/cpdfsdk_baannothandler.cpp +++ b/fpdfsdk/cpdfsdk_baannothandler.cpp @@ -28,6 +28,11 @@ void UpdateAnnotRects(CPDFSDK_PageView* pPageView, CPDFSDK_BAAnnot* pBAAnnot) { rects.push_back(pBAAnnot->GetRect()); if (CPDF_Annot* pPopupAnnot = pBAAnnot->GetPDFPopupAnnot()) rects.push_back(pPopupAnnot->GetRect()); + + // Make the rects round up to avoid https://crbug.com/662804 + for (CFX_FloatRect& rect : rects) + rect.Inflate(1, 1); + pPageView->UpdateRects(rects); } -- cgit v1.2.3