diff --git a/fpdfsdk/cfx_systemhandler.cpp b/fpdfsdk/cfx_systemhandler.cpp
index 14d7729..b6dc19d 100644
--- a/fpdfsdk/cfx_systemhandler.cpp
+++ b/fpdfsdk/cfx_systemhandler.cpp
@@ -68,7 +68,8 @@
   UnderlyingPageType* pPage = pAnnot->GetUnderlyingPage();
   ASSERT(pPage);
 
-  m_pFormFillEnv->OutputSelectedRect(pPage, ptA.x, ptB.y, ptB.x, ptA.y);
+  m_pFormFillEnv->OutputSelectedRect(pPage,
+                                     CFX_FloatRect(ptA.x, ptA.y, ptB.x, ptB.y));
 }
 
 bool CFX_SystemHandler::IsSelectionImplemented() const {
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.cpp b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
index 4aae48c..4ef766d 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.cpp
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.cpp
@@ -240,13 +240,13 @@
   }
 }
 
-void CPDFSDK_FormFillEnvironment::OutputSelectedRect(FPDF_PAGE page,
-                                                     double left,
-                                                     double top,
-                                                     double right,
-                                                     double bottom) {
-  if (m_pInfo && m_pInfo->FFI_OutputSelectedRect)
-    m_pInfo->FFI_OutputSelectedRect(m_pInfo, page, left, top, right, bottom);
+void CPDFSDK_FormFillEnvironment::OutputSelectedRect(
+    FPDF_PAGE page,
+    const CFX_FloatRect& rect) {
+  if (m_pInfo && m_pInfo->FFI_OutputSelectedRect) {
+    m_pInfo->FFI_OutputSelectedRect(m_pInfo, page, rect.left, rect.top,
+                                    rect.right, rect.bottom);
+  }
 }
 
 void CPDFSDK_FormFillEnvironment::SetCursor(int nCursorType) {
diff --git a/fpdfsdk/cpdfsdk_formfillenvironment.h b/fpdfsdk/cpdfsdk_formfillenvironment.h
index b180e98..eead873 100644
--- a/fpdfsdk/cpdfsdk_formfillenvironment.h
+++ b/fpdfsdk/cpdfsdk_formfillenvironment.h
@@ -69,11 +69,7 @@
   bool ProcOpenAction();
 
   void Invalidate(FPDF_PAGE page, const FX_RECT& rect);
-  void OutputSelectedRect(FPDF_PAGE page,
-                          double left,
-                          double top,
-                          double right,
-                          double bottom);
+  void OutputSelectedRect(FPDF_PAGE page, const CFX_FloatRect& rect);
 
   void SetCursor(int nCursorType);
   int SetTimer(int uElapse, TimerCallback lpTimerFunc);
