Index: pdf/pdfium/pdfium_engine.cc |
diff --git a/pdf/pdfium/pdfium_engine.cc b/pdf/pdfium/pdfium_engine.cc |
index 89fa7eb0a8ad75f17d288a63e4a526eb98dd328a..fc36c1ef152e46a89786ce8adfb37692f4dba11f 100644 |
--- a/pdf/pdfium/pdfium_engine.cc |
+++ b/pdf/pdfium/pdfium_engine.cc |
@@ -1071,6 +1071,15 @@ void PDFiumEngine::Paint(const pp::Rect& rect, |
if (dirty_in_screen.IsEmpty()) |
continue; |
+ // Compute the leftover dirty region. The first page may have blank space |
+ // above it, in which case we also need to subtract that space from the |
+ // dirty region. |
+ if (i == 0) { |
+ pp::Rect blank_space_in_screen = dirty_in_screen; |
+ blank_space_in_screen.set_y(0); |
+ blank_space_in_screen.set_height(dirty_in_screen.y()); |
+ leftover = leftover.Subtract(blank_space_in_screen); |
+ } |
leftover = leftover.Subtract(dirty_in_screen); |
if (pages_[index]->available()) { |