Index: xfa/fwl/core/ifwl_form.cpp |
diff --git a/xfa/fwl/core/ifwl_form.cpp b/xfa/fwl/core/ifwl_form.cpp |
index 42827ab7593ac5db8bf6cf5230bf395e2f0916d6..989da199e15d4f2eddcf6a8525741b8491b364e7 100644 |
--- a/xfa/fwl/core/ifwl_form.cpp |
+++ b/xfa/fwl/core/ifwl_form.cpp |
@@ -88,24 +88,27 @@ bool IFWL_Form::IsInstance(const CFX_WideStringC& wsClass) const { |
} |
void IFWL_Form::GetWidgetRect(CFX_RectF& rect, bool bAutoSize) { |
- if (bAutoSize) { |
- rect.Reset(); |
- FX_FLOAT fCapHeight = GetCaptionHeight(); |
- FX_FLOAT fCXBorder = GetBorderSize(true); |
- FX_FLOAT fCYBorder = GetBorderSize(false); |
- FX_FLOAT fEdge = GetEdgeWidth(); |
- rect.height += fCapHeight + fCYBorder + fEdge + fEdge; |
- rect.width += fCXBorder + fCXBorder + fEdge + fEdge; |
- } else { |
+ if (!bAutoSize) { |
rect = m_pProperties->m_rtWidget; |
+ return; |
} |
+ |
+ rect.Reset(); |
+ FX_FLOAT fCapHeight = GetCaptionHeight(); |
+ FX_FLOAT fCXBorder = GetBorderSize(true); |
+ FX_FLOAT fCYBorder = GetBorderSize(false); |
+ FX_FLOAT fEdge = GetEdgeWidth(); |
+ rect.height += fCapHeight + fCYBorder + fEdge + fEdge; |
+ rect.width += fCXBorder + fCXBorder + fEdge + fEdge; |
} |
+ |
void IFWL_Form::GetClientRect(CFX_RectF& rect) { |
if ((m_pProperties->m_dwStyles & FWL_WGTSTYLE_Caption) == 0) { |
rect = m_pProperties->m_rtWidget; |
rect.Offset(-rect.left, -rect.top); |
return; |
} |
+ |
#ifdef FWL_UseMacSystemBorder |
rect = m_rtRelative; |
CFWL_WidgetMgr* pWidgetMgr = GetOwnerApp()->GetWidgetMgr(); |
@@ -134,31 +137,33 @@ void IFWL_Form::GetClientRect(CFX_RectF& rect) { |
rect.Deflate(x, t, x, y); |
#endif |
} |
+ |
void IFWL_Form::Update() { |
- if (m_iLock > 0) { |
+ if (m_iLock > 0) |
return; |
- } |
- if (!m_pProperties->m_pThemeProvider) { |
+ if (!m_pProperties->m_pThemeProvider) |
m_pProperties->m_pThemeProvider = GetAvailableTheme(); |
- } |
-#ifdef FWL_UseMacSystemBorder |
-#else |
+ |
+#ifndef FWL_UseMacSystemBorder |
SetThemeData(); |
- if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_Icon) { |
+ if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_Icon) |
UpdateIcon(); |
- } |
#endif |
+ |
UpdateCaption(); |
Layout(); |
} |
+ |
FWL_WidgetHit IFWL_Form::HitTest(FX_FLOAT fx, FX_FLOAT fy) { |
GetAvailableTheme(); |
+ |
if (m_pCloseBox && m_pCloseBox->m_rtBtn.Contains(fx, fy)) |
return FWL_WidgetHit::CloseBox; |
if (m_pMaxBox && m_pMaxBox->m_rtBtn.Contains(fx, fy)) |
return FWL_WidgetHit::MaxBox; |
if (m_pMinBox && m_pMinBox->m_rtBtn.Contains(fx, fy)) |
return FWL_WidgetHit::MinBox; |
+ |
CFX_RectF rtCap; |
rtCap.Set(m_rtCaption.left + m_fCYBorder, m_rtCaption.top + m_fCXBorder, |
m_rtCaption.width - kSystemButtonSize * m_iSysBox - 2 * m_fCYBorder, |
@@ -169,32 +174,40 @@ FWL_WidgetHit IFWL_Form::HitTest(FX_FLOAT fx, FX_FLOAT fy) { |
(m_pProperties->m_dwStyleExes & FWL_STYLEEXT_FRM_Resize)) { |
FX_FLOAT fWidth = m_rtRelative.width - 2 * (m_fCYBorder + kCornerEnlarge); |
FX_FLOAT fHeight = m_rtRelative.height - 2 * (m_fCXBorder + kCornerEnlarge); |
+ |
CFX_RectF rt; |
rt.Set(0, m_fCXBorder + kCornerEnlarge, m_fCYBorder, fHeight); |
if (rt.Contains(fx, fy)) |
return FWL_WidgetHit::Left; |
+ |
rt.Set(m_rtRelative.width - m_fCYBorder, m_fCXBorder + kCornerEnlarge, |
m_fCYBorder, fHeight); |
if (rt.Contains(fx, fy)) |
return FWL_WidgetHit::Right; |
+ |
rt.Set(m_fCYBorder + kCornerEnlarge, 0, fWidth, m_fCXBorder); |
if (rt.Contains(fx, fy)) |
return FWL_WidgetHit::Top; |
+ |
rt.Set(m_fCYBorder + kCornerEnlarge, m_rtRelative.height - m_fCXBorder, |
fWidth, m_fCXBorder); |
if (rt.Contains(fx, fy)) |
return FWL_WidgetHit::Bottom; |
+ |
rt.Set(0, 0, m_fCYBorder + kCornerEnlarge, m_fCXBorder + kCornerEnlarge); |
if (rt.Contains(fx, fy)) |
return FWL_WidgetHit::LeftTop; |
+ |
rt.Set(0, m_rtRelative.height - m_fCXBorder - kCornerEnlarge, |
m_fCYBorder + kCornerEnlarge, m_fCXBorder + kCornerEnlarge); |
if (rt.Contains(fx, fy)) |
return FWL_WidgetHit::LeftBottom; |
+ |
rt.Set(m_rtRelative.width - m_fCYBorder - kCornerEnlarge, 0, |
m_fCYBorder + kCornerEnlarge, m_fCXBorder + kCornerEnlarge); |
if (rt.Contains(fx, fy)) |
return FWL_WidgetHit::RightTop; |
+ |
rt.Set(m_rtRelative.width - m_fCYBorder - kCornerEnlarge, |
m_rtRelative.height - m_fCXBorder - kCornerEnlarge, |
m_fCYBorder + kCornerEnlarge, m_fCXBorder + kCornerEnlarge); |
@@ -203,17 +216,19 @@ FWL_WidgetHit IFWL_Form::HitTest(FX_FLOAT fx, FX_FLOAT fy) { |
} |
return FWL_WidgetHit::Client; |
} |
+ |
void IFWL_Form::DrawWidget(CFX_Graphics* pGraphics, const CFX_Matrix* pMatrix) { |
if (!pGraphics) |
return; |
if (!m_pProperties->m_pThemeProvider) |
return; |
+ |
IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider; |
bool bInactive = !IsActive(); |
int32_t iState = bInactive ? CFWL_PartState_Inactive : CFWL_PartState_Normal; |
- if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_FRM_NoDrawClient) == 0) { |
+ if ((m_pProperties->m_dwStyleExes & FWL_STYLEEXT_FRM_NoDrawClient) == 0) |
DrawBackground(pGraphics, pTheme); |
- } |
+ |
#ifdef FWL_UseMacSystemBorder |
return; |
#endif |
@@ -222,9 +237,8 @@ void IFWL_Form::DrawWidget(CFX_Graphics* pGraphics, const CFX_Matrix* pMatrix) { |
param.m_dwStates = iState; |
param.m_pGraphics = pGraphics; |
param.m_rtPart = m_rtRelative; |
- if (pMatrix) { |
+ if (pMatrix) |
param.m_matrix.Concat(*pMatrix); |
- } |
if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_Border) { |
param.m_iPart = CFWL_Part::Border; |
pTheme->DrawBackground(¶m); |
@@ -253,31 +267,29 @@ void IFWL_Form::DrawWidget(CFX_Graphics* pGraphics, const CFX_Matrix* pMatrix) { |
} |
if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_Icon) { |
param.m_iPart = CFWL_Part::Icon; |
- if (HasIcon()) { |
+ if (HasIcon()) |
DrawIconImage(pGraphics, pTheme, pMatrix); |
- } |
} |
+ |
#if (_FX_OS_ == _FX_MACOSX_) |
{ |
if (m_pCloseBox) { |
param.m_iPart = CFWL_Part::CloseBox; |
param.m_dwStates = m_pCloseBox->GetPartState(); |
- if (m_pProperties->m_dwStates & FWL_WGTSTATE_Deactivated) { |
+ if (m_pProperties->m_dwStates & FWL_WGTSTATE_Deactivated) |
param.m_dwStates = CFWL_PartState_Disabled; |
- } else if (CFWL_PartState_Normal == param.m_dwStates && m_bMouseIn) { |
+ else if (CFWL_PartState_Normal == param.m_dwStates && m_bMouseIn) |
param.m_dwStates = CFWL_PartState_Hovered; |
- } |
param.m_rtPart = m_pCloseBox->m_rtBtn; |
pTheme->DrawBackground(¶m); |
} |
if (m_pMaxBox) { |
param.m_iPart = CFWL_Part::MaximizeBox; |
param.m_dwStates = m_pMaxBox->GetPartState(); |
- if (m_pProperties->m_dwStates & FWL_WGTSTATE_Deactivated) { |
+ if (m_pProperties->m_dwStates & FWL_WGTSTATE_Deactivated) |
param.m_dwStates = CFWL_PartState_Disabled; |
- } else if (CFWL_PartState_Normal == param.m_dwStates && m_bMouseIn) { |
+ else if (CFWL_PartState_Normal == param.m_dwStates && m_bMouseIn) |
param.m_dwStates = CFWL_PartState_Hovered; |
- } |
param.m_rtPart = m_pMaxBox->m_rtBtn; |
param.m_bMaximize = m_bMaximized; |
pTheme->DrawBackground(¶m); |
@@ -285,11 +297,10 @@ void IFWL_Form::DrawWidget(CFX_Graphics* pGraphics, const CFX_Matrix* pMatrix) { |
if (m_pMinBox) { |
param.m_iPart = CFWL_Part::MinimizeBox; |
param.m_dwStates = m_pMinBox->GetPartState(); |
- if (m_pProperties->m_dwStates & FWL_WGTSTATE_Deactivated) { |
+ if (m_pProperties->m_dwStates & FWL_WGTSTATE_Deactivated) |
param.m_dwStates = CFWL_PartState_Disabled; |
- } else if (CFWL_PartState_Normal == param.m_dwStates && m_bMouseIn) { |
+ else if (CFWL_PartState_Normal == param.m_dwStates && m_bMouseIn) |
param.m_dwStates = CFWL_PartState_Hovered; |
- } |
param.m_rtPart = m_pMinBox->m_rtBtn; |
pTheme->DrawBackground(¶m); |
} |
@@ -336,10 +347,11 @@ IFWL_Widget* IFWL_Form::DoModal() { |
m_bDoModalFlag = true; |
SetStates(FWL_WGTSTATE_Invisible, false); |
pDriver->Run(); |
-#if (_FX_OS_ == _FX_MACOSX_) |
-#else |
+ |
+#if _FX_OS_ != _FX_MACOSX_ |
pDriver->PopNoteLoop(); |
#endif |
+ |
m_pNoteLoop.reset(); |
return nullptr; |
} |
@@ -347,7 +359,9 @@ IFWL_Widget* IFWL_Form::DoModal() { |
void IFWL_Form::EndDoModal() { |
if (!m_pNoteLoop) |
return; |
+ |
m_bDoModalFlag = false; |
+ |
#if (_FX_OS_ == _FX_MACOSX_) |
m_pNoteLoop->EndModalLoop(); |
const IFWL_App* pApp = GetOwnerApp(); |
@@ -392,35 +406,29 @@ void IFWL_Form::RemoveSysButtons() { |
} |
CFWL_SysBtn* IFWL_Form::GetSysBtnAtPoint(FX_FLOAT fx, FX_FLOAT fy) { |
- if (m_pCloseBox && m_pCloseBox->m_rtBtn.Contains(fx, fy)) { |
+ if (m_pCloseBox && m_pCloseBox->m_rtBtn.Contains(fx, fy)) |
return m_pCloseBox; |
- } |
- if (m_pMaxBox && m_pMaxBox->m_rtBtn.Contains(fx, fy)) { |
+ if (m_pMaxBox && m_pMaxBox->m_rtBtn.Contains(fx, fy)) |
return m_pMaxBox; |
- } |
- if (m_pMinBox && m_pMinBox->m_rtBtn.Contains(fx, fy)) { |
+ if (m_pMinBox && m_pMinBox->m_rtBtn.Contains(fx, fy)) |
return m_pMinBox; |
- } |
- if (m_pCaptionBox && m_pCaptionBox->m_rtBtn.Contains(fx, fy)) { |
+ if (m_pCaptionBox && m_pCaptionBox->m_rtBtn.Contains(fx, fy)) |
return m_pCaptionBox; |
- } |
return nullptr; |
} |
+ |
CFWL_SysBtn* IFWL_Form::GetSysBtnByState(uint32_t dwState) { |
- if (m_pCloseBox && (m_pCloseBox->m_dwState & dwState)) { |
+ if (m_pCloseBox && (m_pCloseBox->m_dwState & dwState)) |
return m_pCloseBox; |
- } |
- if (m_pMaxBox && (m_pMaxBox->m_dwState & dwState)) { |
+ if (m_pMaxBox && (m_pMaxBox->m_dwState & dwState)) |
return m_pMaxBox; |
- } |
- if (m_pMinBox && (m_pMinBox->m_dwState & dwState)) { |
+ if (m_pMinBox && (m_pMinBox->m_dwState & dwState)) |
return m_pMinBox; |
- } |
- if (m_pCaptionBox && (m_pCaptionBox->m_dwState & dwState)) { |
+ if (m_pCaptionBox && (m_pCaptionBox->m_dwState & dwState)) |
return m_pCaptionBox; |
- } |
return nullptr; |
} |
+ |
CFWL_SysBtn* IFWL_Form::GetSysBtnByIndex(int32_t nIndex) { |
if (nIndex < 0) |
return nullptr; |
@@ -428,36 +436,32 @@ CFWL_SysBtn* IFWL_Form::GetSysBtnByIndex(int32_t nIndex) { |
CFX_ArrayTemplate<CFWL_SysBtn*> arrBtn; |
if (m_pMinBox) |
arrBtn.Add(m_pMinBox); |
- |
if (m_pMaxBox) |
arrBtn.Add(m_pMaxBox); |
- |
if (m_pCloseBox) |
arrBtn.Add(m_pCloseBox); |
- |
return arrBtn[nIndex]; |
} |
+ |
int32_t IFWL_Form::GetSysBtnIndex(CFWL_SysBtn* pBtn) { |
CFX_ArrayTemplate<CFWL_SysBtn*> arrBtn; |
if (m_pMinBox) |
arrBtn.Add(m_pMinBox); |
- |
if (m_pMaxBox) |
arrBtn.Add(m_pMaxBox); |
- |
if (m_pCloseBox) |
arrBtn.Add(m_pCloseBox); |
- |
return arrBtn.Find(pBtn); |
} |
+ |
FX_FLOAT IFWL_Form::GetCaptionHeight() { |
CFWL_WidgetCapacity dwCapacity = CFWL_WidgetCapacity::None; |
- if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_Caption) { |
+ if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_Caption) |
dwCapacity = CFWL_WidgetCapacity::CYCaption; |
- } else if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_NarrowCaption) { |
+ else if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_NarrowCaption) |
dwCapacity = CFWL_WidgetCapacity::CYNarrowCaption; |
- } |
+ |
if (dwCapacity != CFWL_WidgetCapacity::None) { |
FX_FLOAT* pfCapHeight = |
static_cast<FX_FLOAT*>(GetThemeCapacity(dwCapacity)); |
@@ -465,23 +469,24 @@ FX_FLOAT IFWL_Form::GetCaptionHeight() { |
} |
return 0; |
} |
+ |
void IFWL_Form::DrawCaptionText(CFX_Graphics* pGs, |
IFWL_ThemeProvider* pTheme, |
const CFX_Matrix* pMatrix) { |
CFX_WideString wsText; |
IFWL_DataProvider* pData = m_pProperties->m_pDataProvider; |
pData->GetCaption(this, wsText); |
- if (wsText.IsEmpty()) { |
+ if (wsText.IsEmpty()) |
return; |
- } |
+ |
CFWL_ThemeText textParam; |
textParam.m_pWidget = this; |
textParam.m_iPart = CFWL_Part::Caption; |
textParam.m_dwStates = CFWL_PartState_Normal; |
textParam.m_pGraphics = pGs; |
- if (pMatrix) { |
+ if (pMatrix) |
textParam.m_matrix.Concat(*pMatrix); |
- } |
+ |
CFX_RectF rtText; |
if (m_bCustomizeLayout) { |
rtText = m_rtCaptionText; |
@@ -499,6 +504,7 @@ void IFWL_Form::DrawCaptionText(CFX_Graphics* pGs, |
: FDE_TTOALIGNMENT_CenterLeft; |
pTheme->DrawText(&textParam); |
} |
+ |
void IFWL_Form::DrawIconImage(CFX_Graphics* pGs, |
IFWL_ThemeProvider* pTheme, |
const CFX_Matrix* pMatrix) { |
@@ -510,11 +516,11 @@ void IFWL_Form::DrawIconImage(CFX_Graphics* pGs, |
param.m_pGraphics = pGs; |
param.m_pImage = pData->GetIcon(this, false); |
param.m_rtPart = m_rtIcon; |
- if (pMatrix) { |
+ if (pMatrix) |
param.m_matrix.Concat(*pMatrix); |
- } |
pTheme->DrawBackground(¶m); |
} |
+ |
void IFWL_Form::GetEdgeRect(CFX_RectF& rtEdge) { |
rtEdge = m_rtRelative; |
if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_Border) { |
@@ -523,27 +529,32 @@ void IFWL_Form::GetEdgeRect(CFX_RectF& rtEdge) { |
rtEdge.Deflate(fCX, m_rtCaption.Height(), fCX, fCY); |
} |
} |
+ |
void IFWL_Form::SetWorkAreaRect() { |
m_rtRestore = m_pProperties->m_rtWidget; |
CFWL_WidgetMgr* pWidgetMgr = GetOwnerApp()->GetWidgetMgr(); |
if (!pWidgetMgr) |
return; |
+ |
m_bSetMaximize = true; |
Repaint(&m_rtRelative); |
} |
void IFWL_Form::Layout() { |
GetRelativeRect(m_rtRelative); |
+ |
#ifndef FWL_UseMacSystemBorder |
ResetSysBtn(); |
#endif |
} |
+ |
void IFWL_Form::ResetSysBtn() { |
m_fCXBorder = |
*static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::CXBorder)); |
m_fCYBorder = |
*static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::CYBorder)); |
RemoveSysButtons(); |
+ |
IFWL_ThemeProvider* pTheme = m_pProperties->m_pThemeProvider; |
m_bCustomizeLayout = pTheme->IsCustomizedLayout(this); |
FX_FLOAT fCapHeight = GetCaptionHeight(); |
@@ -551,6 +562,7 @@ void IFWL_Form::ResetSysBtn() { |
m_rtCaption = m_rtRelative; |
m_rtCaption.height = fCapHeight; |
} |
+ |
m_iSysBox = 0; |
if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_CloseBox) { |
m_pCloseBox = new CFWL_SysBtn; |
@@ -595,6 +607,7 @@ void IFWL_Form::ResetSysBtn() { |
} |
m_iSysBox++; |
} |
+ |
IFWL_FormDP* pData = |
static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider); |
if (m_pProperties->m_dwStyles & FWL_WGTSTYLE_Icon && |
@@ -605,6 +618,7 @@ void IFWL_Form::ResetSysBtn() { |
} |
} |
} |
+ |
void IFWL_Form::RegisterForm() { |
const IFWL_App* pApp = GetOwnerApp(); |
if (!pApp) |
@@ -617,6 +631,7 @@ void IFWL_Form::RegisterForm() { |
pDriver->RegisterForm(this); |
} |
+ |
void IFWL_Form::UnRegisterForm() { |
const IFWL_App* pApp = GetOwnerApp(); |
if (!pApp) |
@@ -636,15 +651,18 @@ void IFWL_Form::SetThemeData() { |
m_fBigIconSz = |
*static_cast<FX_FLOAT*>(GetThemeCapacity(CFWL_WidgetCapacity::BigIcon)); |
} |
+ |
bool IFWL_Form::HasIcon() { |
IFWL_FormDP* pData = |
static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider); |
return !!pData->GetIcon(this, false); |
} |
+ |
void IFWL_Form::UpdateIcon() { |
CFWL_WidgetMgr* pWidgetMgr = GetOwnerApp()->GetWidgetMgr(); |
if (!pWidgetMgr) |
return; |
+ |
IFWL_FormDP* pData = |
static_cast<IFWL_FormDP*>(m_pProperties->m_pDataProvider); |
CFX_DIBitmap* pBigIcon = pData->GetIcon(this, true); |
@@ -654,21 +672,22 @@ void IFWL_Form::UpdateIcon() { |
if (pSmallIcon) |
m_pSmallIcon = pSmallIcon; |
} |
+ |
void IFWL_Form::UpdateCaption() { |
CFWL_WidgetMgr* pWidgetMgr = GetOwnerApp()->GetWidgetMgr(); |
if (!pWidgetMgr) |
return; |
+ |
IFWL_DataProvider* pData = m_pProperties->m_pDataProvider; |
if (!pData) |
return; |
+ |
CFX_WideString text; |
pData->GetCaption(this, text); |
} |
-#ifdef FWL_UseMacSystemBorder |
-void IFWL_Form::OnProcessMessage(CFWL_Message* pMessage) {} |
-#else |
void IFWL_Form::OnProcessMessage(CFWL_Message* pMessage) { |
+#ifndef FWL_UseMacSystemBorder |
if (!pMessage) |
return; |
@@ -699,8 +718,8 @@ void IFWL_Form::OnProcessMessage(CFWL_Message* pMessage) { |
default: |
break; |
} |
-} |
#endif // FWL_UseMacSystemBorder |
+} |
void IFWL_Form::OnDrawWidget(CFX_Graphics* pGraphics, |
const CFX_Matrix* pMatrix) { |
@@ -711,8 +730,10 @@ void IFWL_Form::OnLButtonDown(CFWL_MsgMouse* pMsg) { |
SetGrab(true); |
m_bLButtonDown = true; |
m_eResizeType = FORM_RESIZETYPE_None; |
+ |
CFWL_SysBtn* pPressBtn = GetSysBtnAtPoint(pMsg->m_fx, pMsg->m_fy); |
m_iCaptureBtn = GetSysBtnIndex(pPressBtn); |
+ |
CFX_RectF rtCap; |
rtCap.Set(m_rtCaption.left + m_fCYBorder, m_rtCaption.top + m_fCXBorder, |
m_rtCaption.width - kSystemButtonSize * m_iSysBox - 2 * m_fCYBorder, |
@@ -724,6 +745,7 @@ void IFWL_Form::OnLButtonDown(CFWL_MsgMouse* pMsg) { |
} else if (rtCap.Contains(pMsg->m_fx, pMsg->m_fy)) { |
m_eResizeType = FORM_RESIZETYPE_Cap; |
} |
+ |
m_InfoStart.m_ptStart = CFX_PointF(pMsg->m_fx, pMsg->m_fy); |
m_InfoStart.m_szStart = CFX_SizeF(m_pProperties->m_rtWidget.width, |
m_pProperties->m_rtWidget.height); |
@@ -763,7 +785,8 @@ void IFWL_Form::OnMouseMove(CFWL_MsgMouse* pMsg) { |
rtInvalidate.Reset(); |
CFWL_SysBtn* pPointBtn = GetSysBtnAtPoint(pMsg->m_fx, pMsg->m_fy); |
CFWL_SysBtn* pOldHover = GetSysBtnByState(FWL_SYSBUTTONSTATE_Hover); |
-#if (_FX_OS_ == _FX_MACOSX_) |
+ |
+#if _FX_OS_ == _FX_MACOSX_ |
{ |
if (pOldHover && pPointBtn != pOldHover) |
pOldHover->SetNormal(); |
@@ -803,16 +826,18 @@ void IFWL_Form::OnMouseMove(CFWL_MsgMouse* pMsg) { |
} |
} |
#endif |
+ |
if (!rtInvalidate.IsEmpty()) |
Repaint(&rtInvalidate); |
} |
void IFWL_Form::OnMouseLeave(CFWL_MsgMouse* pMsg) { |
CFWL_SysBtn* pHover = GetSysBtnByState(FWL_SYSBUTTONSTATE_Hover); |
- if (pHover) { |
- pHover->SetNormal(); |
- Repaint(&pHover->m_rtBtn); |
- } |
+ if (!pHover) |
+ return; |
+ |
+ pHover->SetNormal(); |
+ Repaint(&pHover->m_rtBtn); |
} |
void IFWL_Form::OnLButtonDblClk(CFWL_MsgMouse* pMsg) { |