Index: xfa/fwl/core/cfwl_listbox.cpp |
diff --git a/xfa/fwl/core/cfwl_listbox.cpp b/xfa/fwl/core/cfwl_listbox.cpp |
index be9e8b93955b6fc4bd0ea724d37bc8f3afaf426c..7589623e51fc12afd2e3bcc5aad7d93c8d299040 100644 |
--- a/xfa/fwl/core/cfwl_listbox.cpp |
+++ b/xfa/fwl/core/cfwl_listbox.cpp |
@@ -96,13 +96,13 @@ void CFWL_ListBox::Update() { |
FWL_WidgetHit CFWL_ListBox::HitTest(FX_FLOAT fx, FX_FLOAT fy) { |
if (IsShowScrollBar(false)) { |
CFX_RectF rect; |
- m_pHorzScrollBar->GetWidgetRect(rect); |
+ m_pHorzScrollBar->GetWidgetRect(rect, false); |
if (rect.Contains(fx, fy)) |
return FWL_WidgetHit::HScrollBar; |
} |
if (IsShowScrollBar(true)) { |
CFX_RectF rect; |
- m_pVertScrollBar->GetWidgetRect(rect); |
+ m_pVertScrollBar->GetWidgetRect(rect, false); |
if (rect.Contains(fx, fy)) |
return FWL_WidgetHit::VScrollBar; |
} |
@@ -645,13 +645,13 @@ CFX_SizeF CFWL_ListBox::CalcSize(bool bAutoSize) { |
if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_LTB_ShowScrollBarFocus) == |
0 || |
(m_pProperties->m_dwStates & FWL_WGTSTATE_Focused)) { |
- m_pVertScrollBar->SetStates(FWL_WGTSTATE_Invisible, false); |
+ m_pVertScrollBar->RemoveStates(FWL_WGTSTATE_Invisible); |
} |
m_pVertScrollBar->Update(); |
} else if (m_pVertScrollBar) { |
m_pVertScrollBar->SetPos(0); |
m_pVertScrollBar->SetTrackPos(0); |
- m_pVertScrollBar->SetStates(FWL_WGTSTATE_Invisible, true); |
+ m_pVertScrollBar->SetStates(FWL_WGTSTATE_Invisible); |
} |
if (bShowHorzScr) { |
if (!m_pHorzScrollBar) |
@@ -676,13 +676,13 @@ CFX_SizeF CFWL_ListBox::CalcSize(bool bAutoSize) { |
if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_LTB_ShowScrollBarFocus) == |
0 || |
(m_pProperties->m_dwStates & FWL_WGTSTATE_Focused)) { |
- m_pHorzScrollBar->SetStates(FWL_WGTSTATE_Invisible, false); |
+ m_pHorzScrollBar->RemoveStates(FWL_WGTSTATE_Invisible); |
} |
m_pHorzScrollBar->Update(); |
} else if (m_pHorzScrollBar) { |
m_pHorzScrollBar->SetPos(0); |
m_pHorzScrollBar->SetTrackPos(0); |
- m_pHorzScrollBar->SetStates(FWL_WGTSTATE_Invisible, true); |
+ m_pHorzScrollBar->SetStates(FWL_WGTSTATE_Invisible); |
} |
if (bShowVertScr && bShowHorzScr) { |
m_rtStatic.Set(m_rtClient.right() - m_fScorllBarWidth, |
@@ -830,10 +830,18 @@ void CFWL_ListBox::OnDrawWidget(CFX_Graphics* pGraphics, |
void CFWL_ListBox::OnFocusChanged(CFWL_Message* pMsg, bool bSet) { |
if (GetStylesEx() & FWL_STYLEEXT_LTB_ShowScrollBarFocus) { |
- if (m_pVertScrollBar) |
- m_pVertScrollBar->SetStates(FWL_WGTSTATE_Invisible, !bSet); |
- if (m_pHorzScrollBar) |
- m_pHorzScrollBar->SetStates(FWL_WGTSTATE_Invisible, !bSet); |
+ if (m_pVertScrollBar) { |
+ if (bSet) |
+ m_pVertScrollBar->RemoveStates(FWL_WGTSTATE_Invisible); |
+ else |
+ m_pVertScrollBar->SetStates(FWL_WGTSTATE_Invisible); |
+ } |
+ if (m_pHorzScrollBar) { |
+ if (bSet) |
+ m_pHorzScrollBar->RemoveStates(FWL_WGTSTATE_Invisible); |
+ else |
+ m_pHorzScrollBar->SetStates(FWL_WGTSTATE_Invisible); |
+ } |
} |
if (bSet) |
m_pProperties->m_dwStates |= (FWL_WGTSTATE_Focused); |