The tree only sets the focus in response to a TVN_SELCHANGINGW event if the tree is not being deleted.
TVN_SELCHANGINGW is generated when the tree items are deleted. Without this change, if a tree control is in a dialog being closed, the newly active window will become inactive momentarily when tree items are deleted and you will see a flicker. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@70660 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -791,6 +791,8 @@ bool wxTreeCtrl::Create(wxWindow *parent,
|
|||||||
|
|
||||||
wxTreeCtrl::~wxTreeCtrl()
|
wxTreeCtrl::~wxTreeCtrl()
|
||||||
{
|
{
|
||||||
|
m_isBeingDeleted = true;
|
||||||
|
|
||||||
// delete any attributes
|
// delete any attributes
|
||||||
if ( m_hasAnyAttr )
|
if ( m_hasAnyAttr )
|
||||||
{
|
{
|
||||||
@@ -3468,7 +3470,7 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
|
|||||||
//
|
//
|
||||||
// to avoid such surprises, we force the generation of focus events
|
// to avoid such surprises, we force the generation of focus events
|
||||||
// now, before we generate the selection change ones
|
// now, before we generate the selection change ones
|
||||||
if ( !m_changingSelection )
|
if ( !m_changingSelection && !m_isBeingDeleted )
|
||||||
SetFocus();
|
SetFocus();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user