diff options
author | Lei Zhang <thestig@chromium.org> | 2017-08-29 11:34:12 -0700 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2017-08-29 20:37:23 +0000 |
commit | 77f9bff2c229df771a43448a9d5087e042235936 (patch) | |
tree | 3bdc3d70491248a301c53275ccfe583b074d9184 /fpdfsdk/cpdfsdk_interform.cpp | |
parent | c9d6d68e9b91a0373d8aac42cdde5dac1925ec42 (diff) | |
download | pdfium-77f9bff2c229df771a43448a9d5087e042235936.tar.xz |
Reduce rounding errors when Invalidating rects.
Instead of using CFX_FloatRect::ToFxRect(), which always rounds down,
use GetOuterRect() which correctly rounds up / down depending on the
side of the rectangle.
Change-Id: I7abd3a65e8c0467ed4303292f26a72737a5d553b
Reviewed-on: https://pdfium-review.googlesource.com/12312
Commit-Queue: dsinclair <dsinclair@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fpdfsdk/cpdfsdk_interform.cpp')
-rw-r--r-- | fpdfsdk/cpdfsdk_interform.cpp | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/fpdfsdk/cpdfsdk_interform.cpp b/fpdfsdk/cpdfsdk_interform.cpp index 27db1053c6..b60529df5d 100644 --- a/fpdfsdk/cpdfsdk_interform.cpp +++ b/fpdfsdk/cpdfsdk_interform.cpp @@ -327,12 +327,14 @@ void CPDFSDK_InterForm::UpdateField(CPDF_FormField* pFormField) { CPDF_FormControl* pFormCtrl = pFormField->GetControl(i); ASSERT(pFormCtrl); - if (CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl)) { - UnderlyingPageType* pPage = pWidget->GetUnderlyingPage(); - m_pFormFillEnv->Invalidate( - pPage, formfiller->GetViewBBox( - m_pFormFillEnv->GetPageView(pPage, false), pWidget)); - } + CPDFSDK_Widget* pWidget = GetWidget(pFormCtrl); + if (!pWidget) + continue; + + UnderlyingPageType* pPage = pWidget->GetUnderlyingPage(); + FX_RECT rect = formfiller->GetViewBBox( + m_pFormFillEnv->GetPageView(pPage, false), pWidget); + m_pFormFillEnv->Invalidate(pPage, rect); } } |