unset the button as temporary default item when it's destroyed (closes bug 1354875)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40135 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
cef55d6485
commit
789367e10d
@ -56,6 +56,10 @@ public:
|
||||
// soon after a call to SetTmpDefaultItem(window)
|
||||
void SetTmpDefaultItem(wxWindow *win) { m_winTmpDefault = win; }
|
||||
|
||||
// return the temporary default item, can be NULL
|
||||
wxWindow *GetTmpDefaultItem() const { return m_winTmpDefault; }
|
||||
|
||||
|
||||
// the methods to be called from the window event handlers
|
||||
void HandleOnNavigationKey(wxNavigationKeyEvent& event);
|
||||
void HandleOnFocus(wxFocusEvent& event);
|
||||
@ -114,6 +118,7 @@ public: \
|
||||
virtual wxWindow *GetDefaultItem() const; \
|
||||
virtual wxWindow *SetDefaultItem(wxWindow *child); \
|
||||
virtual void SetTmpDefaultItem(wxWindow *win); \
|
||||
virtual wxWindow *GetTmpDefaultItem() const; \
|
||||
virtual bool AcceptsFocus() const; \
|
||||
\
|
||||
protected: \
|
||||
@ -142,6 +147,11 @@ wxWindow *classname::GetDefaultItem() const \
|
||||
return m_container.GetDefaultItem(); \
|
||||
} \
|
||||
\
|
||||
wxWindow *classname::GetTmpDefaultItem() const \
|
||||
{ \
|
||||
return m_container.GetTmpDefaultItem(); \
|
||||
} \
|
||||
\
|
||||
void classname::OnNavigationKey( wxNavigationKeyEvent& event ) \
|
||||
{ \
|
||||
m_container.HandleOnNavigationKey(event); \
|
||||
|
@ -528,6 +528,9 @@ public:
|
||||
// set this child as temporary default
|
||||
virtual void SetTmpDefaultItem(wxWindow * WXUNUSED(win)) { }
|
||||
|
||||
// return the temporary default item, can be NULL
|
||||
virtual wxWindow *GetTmpDefaultItem() const { return NULL; }
|
||||
|
||||
// navigates in the specified direction by sending a wxNavigationKeyEvent
|
||||
virtual bool Navigate(int flags = wxNavigationKeyEvent::IsForward);
|
||||
|
||||
|
@ -197,6 +197,11 @@ bool wxButton::Create(wxWindow *parent,
|
||||
|
||||
wxButton::~wxButton()
|
||||
{
|
||||
wxWindow *parent = GetParent();
|
||||
if ( parent && parent->GetTmpDefaultItem() == this )
|
||||
{
|
||||
UnsetTmpDefault();
|
||||
}
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------
|
||||
|
Loading…
Reference in New Issue
Block a user