diff --git a/xfa/fxfa/cxfa_fffield.cpp b/xfa/fxfa/cxfa_fffield.cpp
index c1c2c11..1ef8824 100644
--- a/xfa/fxfa/cxfa_fffield.cpp
+++ b/xfa/fxfa/cxfa_fffield.cpp
@@ -111,7 +111,7 @@
 
   float DashPattern[2] = {1, 1};
   pGS->SetLineDash(0.0f, DashPattern, 2);
-  pGS->SetLineWidth(0, false);
+  pGS->SetLineWidth(0);
 
   CXFA_Path path;
   path.AddRectangle(m_rtUI.left, m_rtUI.top, m_rtUI.width, m_rtUI.height);
diff --git a/xfa/fxfa/cxfa_ffline.cpp b/xfa/fxfa/cxfa_ffline.cpp
index 130ce9b..4353e68 100644
--- a/xfa/fxfa/cxfa_ffline.cpp
+++ b/xfa/fxfa/cxfa_ffline.cpp
@@ -89,7 +89,8 @@
     linePath.AddLine(rtLine.TopLeft(), rtLine.BottomRight());
 
   pGS->SaveGraphState();
-  pGS->SetLineWidth(fLineWidth, true);
+  pGS->SetLineWidth(fLineWidth);
+  pGS->EnableActOnDash();
   XFA_StrokeTypeSetLineDash(pGS, iStrokeType, iCap);
   pGS->SetStrokeColor(CXFA_Color(lineColor));
   pGS->SetLineCap(XFA_LineCapToFXGE(iCap));
diff --git a/xfa/fxfa/cxfa_ffwidget.cpp b/xfa/fxfa/cxfa_ffwidget.cpp
index c0eb0a3..ee5a55e 100644
--- a/xfa/fxfa/cxfa_ffwidget.cpp
+++ b/xfa/fxfa/cxfa_ffwidget.cpp
@@ -1676,7 +1676,8 @@
   if (stroke.IsCorner() && fThickness > 2 * stroke.GetRadius()) {
     fThickness = 2 * stroke.GetRadius();
   }
-  pGS->SetLineWidth(fThickness, true);
+  pGS->SetLineWidth(fThickness);
+  pGS->EnableActOnDash();
   pGS->SetLineCap(CFX_GraphStateData::LineCapButt);
   XFA_StrokeTypeSetLineDash(pGS, stroke.GetStrokeType(),
                             XFA_ATTRIBUTEENUM_Butt);
diff --git a/xfa/fxgraphics/cxfa_graphics.cpp b/xfa/fxgraphics/cxfa_graphics.cpp
index 981c288..4975a83 100644
--- a/xfa/fxgraphics/cxfa_graphics.cpp
+++ b/xfa/fxgraphics/cxfa_graphics.cpp
@@ -158,11 +158,14 @@
     RenderDeviceSetLineDash(dashStyle);
 }
 
-void CXFA_Graphics::SetLineWidth(float lineWidth, bool isActOnDash) {
-  if (m_type == FX_CONTEXT_Device && m_renderDevice) {
+void CXFA_Graphics::SetLineWidth(float lineWidth) {
+  if (m_type == FX_CONTEXT_Device && m_renderDevice)
     m_info.graphState.m_LineWidth = lineWidth;
-    m_info.isActOnDash = isActOnDash;
-  }
+}
+
+void CXFA_Graphics::EnableActOnDash() {
+  if (m_type == FX_CONTEXT_Device && m_renderDevice)
+    m_info.isActOnDash = true;
 }
 
 void CXFA_Graphics::SetStrokeColor(const CXFA_Color& color) {
diff --git a/xfa/fxgraphics/cxfa_graphics.h b/xfa/fxgraphics/cxfa_graphics.h
index 8069c8e..05f9640 100644
--- a/xfa/fxgraphics/cxfa_graphics.h
+++ b/xfa/fxgraphics/cxfa_graphics.h
@@ -56,7 +56,8 @@
   void SetLineCap(CFX_GraphStateData::LineCap lineCap);
   void SetLineDash(float dashPhase, float* dashArray, int32_t dashCount);
   void SetLineDash(FX_DashStyle dashStyle);
-  void SetLineWidth(float lineWidth, bool isActOnDash = false);
+  void SetLineWidth(float lineWidth);
+  void EnableActOnDash();
   void SetStrokeColor(const CXFA_Color& color);
   void SetFillColor(const CXFA_Color& color);
   void SetClipRect(const CFX_RectF& rect);
