Correct focus rect to not appear in unfocussed controls (currently doesn't appear at all under XP
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@49196 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -26,7 +26,7 @@
|
|||||||
|
|
||||||
#if defined(__WXGTK20__)
|
#if defined(__WXGTK20__)
|
||||||
// for testing
|
// for testing
|
||||||
#define wxUSE_GENERICDATAVIEWCTRL 1
|
// #define wxUSE_GENERICDATAVIEWCTRL 1
|
||||||
#elif defined(__WXMAC__)
|
#elif defined(__WXMAC__)
|
||||||
#else
|
#else
|
||||||
#define wxUSE_GENERICDATAVIEWCTRL 1
|
#define wxUSE_GENERICDATAVIEWCTRL 1
|
||||||
|
@@ -2351,6 +2351,7 @@ void wxDataViewMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
|||||||
x, item_last * m_lineHeight);
|
x, item_last * m_lineHeight);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool has_focus = (FindFocus() == this);
|
||||||
// redraw the background for the items which are selected/current
|
// redraw the background for the items which are selected/current
|
||||||
for (unsigned int item = item_start; item < item_last; item++)
|
for (unsigned int item = item_start; item < item_last; item++)
|
||||||
{
|
{
|
||||||
@@ -2358,7 +2359,7 @@ void wxDataViewMainWindow::OnPaint( wxPaintEvent &WXUNUSED(event) )
|
|||||||
if (selected || item == m_currentRow)
|
if (selected || item == m_currentRow)
|
||||||
{
|
{
|
||||||
int flags = selected ? (int)wxCONTROL_SELECTED : 0;
|
int flags = selected ? (int)wxCONTROL_SELECTED : 0;
|
||||||
if (item == m_currentRow)
|
if ((item == m_currentRow) && has_focus)
|
||||||
flags |= wxCONTROL_CURRENT;
|
flags |= wxCONTROL_CURRENT;
|
||||||
if (m_hasFocus)
|
if (m_hasFocus)
|
||||||
flags |= wxCONTROL_FOCUSED;
|
flags |= wxCONTROL_FOCUSED;
|
||||||
|
Reference in New Issue
Block a user