From: Vadim Zeitlin Date: Mon, 8 Dec 2008 11:26:50 +0000 (+0000) Subject: update column highlight when mouse hovers over the control X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/6090efab945f970a98902a07db209311f02cbcbf update column highlight when mouse hovers over the control git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@57184 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/src/generic/headerctrlg.cpp b/src/generic/headerctrlg.cpp index 823ea60aac..072159590e 100644 --- a/src/generic/headerctrlg.cpp +++ b/src/generic/headerctrlg.cpp @@ -193,6 +193,12 @@ void wxHeaderCtrl::RefreshCol(unsigned int idx) RefreshRect(rect); } +void wxHeaderCtrl::RefreshColIfNotNone(unsigned int idx) +{ + if ( idx != COL_NONE ) + RefreshCol(idx); +} + void wxHeaderCtrl::RefreshColsAfter(unsigned int idx) { wxRect rect = GetClientRect(); @@ -283,7 +289,20 @@ void wxHeaderCtrl::OnMouse(wxMouseEvent& mevent) // find if the event is over a column at all bool onSeparator; - const unsigned col = FindColumnAtPos(mevent.GetX(), onSeparator); + const unsigned col = mevent.Leaving() + ? (onSeparator = false, COL_NONE) + : FindColumnAtPos(mevent.GetX(), onSeparator); + + // update the highlighted column if it changed + if ( col != m_hover ) + { + const unsigned hoverOld = m_hover; + m_hover = col; + + RefreshColIfNotNone(hoverOld); + RefreshColIfNotNone(m_hover); + } + if ( col == COL_NONE ) return;