summaryrefslogtreecommitdiff
path: root/fpdfsdk/fpdfxfa
diff options
context:
space:
mode:
Diffstat (limited to 'fpdfsdk/fpdfxfa')
-rw-r--r--fpdfsdk/fpdfxfa/cpdfxfa_page.cpp18
-rw-r--r--fpdfsdk/fpdfxfa/cpdfxfa_page.h7
2 files changed, 9 insertions, 16 deletions
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp b/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp
index 0b4e8f60ee..a43707a9cf 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_page.cpp
@@ -138,7 +138,8 @@ void CPDFXFA_Page::DeviceToPage(int start_x,
if (!m_pPDFPage && !m_pXFAPageView)
return;
- CFX_PointF pos = GetDisplayMatrix(start_x, start_y, size_x, size_y, rotate)
+ const FX_RECT rect(start_x, start_y, start_x + size_x, start_y + size_y);
+ CFX_PointF pos = GetDisplayMatrix(rect, rotate)
.GetInverse()
.Transform(CFX_PointF(static_cast<float>(device_x),
static_cast<float>(device_y)));
@@ -159,8 +160,8 @@ void CPDFXFA_Page::PageToDevice(int start_x,
if (!m_pPDFPage && !m_pXFAPageView)
return;
- CFX_Matrix page2device =
- GetDisplayMatrix(start_x, start_y, size_x, size_y, rotate);
+ const FX_RECT rect(start_x, start_y, start_x + size_x, start_y + size_y);
+ CFX_Matrix page2device = GetDisplayMatrix(rect, rotate);
CFX_PointF pos = page2device.Transform(
CFX_PointF(static_cast<float>(page_x), static_cast<float>(page_y)));
@@ -169,10 +170,7 @@ void CPDFXFA_Page::PageToDevice(int start_x,
*device_y = FXSYS_round(pos.y);
}
-CFX_Matrix CPDFXFA_Page::GetDisplayMatrix(int xPos,
- int yPos,
- int xSize,
- int ySize,
+CFX_Matrix CPDFXFA_Page::GetDisplayMatrix(const FX_RECT& rect,
int iRotate) const {
if (!m_pPDFPage && !m_pXFAPageView)
return CFX_Matrix();
@@ -182,13 +180,11 @@ CFX_Matrix CPDFXFA_Page::GetDisplayMatrix(int xPos,
case FormType::kAcroForm:
case FormType::kXFAForeground:
if (m_pPDFPage)
- return m_pPDFPage->GetDisplayMatrix(xPos, yPos, xSize, ySize, iRotate);
+ return m_pPDFPage->GetDisplayMatrix(rect, iRotate);
FX_FALLTHROUGH;
case FormType::kXFAFull:
- if (m_pXFAPageView) {
- FX_RECT rect = FX_RECT(xPos, yPos, xPos + xSize, yPos + ySize);
+ if (m_pXFAPageView)
return m_pXFAPageView->GetDisplayMatrix(rect, iRotate);
- }
break;
}
diff --git a/fpdfsdk/fpdfxfa/cpdfxfa_page.h b/fpdfsdk/fpdfxfa/cpdfxfa_page.h
index f64d66b10c..bdb4791c87 100644
--- a/fpdfsdk/fpdfxfa/cpdfxfa_page.h
+++ b/fpdfsdk/fpdfxfa/cpdfxfa_page.h
@@ -18,6 +18,7 @@ class CPDFXFA_Context;
class CPDF_Dictionary;
class CPDF_Page;
class CXFA_FFPageView;
+struct FX_RECT;
class CPDFXFA_Page : public Retainable {
public:
@@ -57,11 +58,7 @@ class CPDFXFA_Page : public Retainable {
int* device_x,
int* device_y);
- CFX_Matrix GetDisplayMatrix(int xPos,
- int yPos,
- int xSize,
- int ySize,
- int iRotate) const;
+ CFX_Matrix GetDisplayMatrix(const FX_RECT& rect, int iRotate) const;
protected:
// Refcounted class.