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:
@@ -56,6 +56,10 @@ public:
|
|||||||
// soon after a call to SetTmpDefaultItem(window)
|
// soon after a call to SetTmpDefaultItem(window)
|
||||||
void SetTmpDefaultItem(wxWindow *win) { m_winTmpDefault = win; }
|
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
|
// the methods to be called from the window event handlers
|
||||||
void HandleOnNavigationKey(wxNavigationKeyEvent& event);
|
void HandleOnNavigationKey(wxNavigationKeyEvent& event);
|
||||||
void HandleOnFocus(wxFocusEvent& event);
|
void HandleOnFocus(wxFocusEvent& event);
|
||||||
@@ -114,6 +118,7 @@ public: \
|
|||||||
virtual wxWindow *GetDefaultItem() const; \
|
virtual wxWindow *GetDefaultItem() const; \
|
||||||
virtual wxWindow *SetDefaultItem(wxWindow *child); \
|
virtual wxWindow *SetDefaultItem(wxWindow *child); \
|
||||||
virtual void SetTmpDefaultItem(wxWindow *win); \
|
virtual void SetTmpDefaultItem(wxWindow *win); \
|
||||||
|
virtual wxWindow *GetTmpDefaultItem() const; \
|
||||||
virtual bool AcceptsFocus() const; \
|
virtual bool AcceptsFocus() const; \
|
||||||
\
|
\
|
||||||
protected: \
|
protected: \
|
||||||
@@ -142,6 +147,11 @@ wxWindow *classname::GetDefaultItem() const \
|
|||||||
return m_container.GetDefaultItem(); \
|
return m_container.GetDefaultItem(); \
|
||||||
} \
|
} \
|
||||||
\
|
\
|
||||||
|
wxWindow *classname::GetTmpDefaultItem() const \
|
||||||
|
{ \
|
||||||
|
return m_container.GetTmpDefaultItem(); \
|
||||||
|
} \
|
||||||
|
\
|
||||||
void classname::OnNavigationKey( wxNavigationKeyEvent& event ) \
|
void classname::OnNavigationKey( wxNavigationKeyEvent& event ) \
|
||||||
{ \
|
{ \
|
||||||
m_container.HandleOnNavigationKey(event); \
|
m_container.HandleOnNavigationKey(event); \
|
||||||
|
@@ -528,6 +528,9 @@ public:
|
|||||||
// set this child as temporary default
|
// set this child as temporary default
|
||||||
virtual void SetTmpDefaultItem(wxWindow * WXUNUSED(win)) { }
|
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
|
// navigates in the specified direction by sending a wxNavigationKeyEvent
|
||||||
virtual bool Navigate(int flags = wxNavigationKeyEvent::IsForward);
|
virtual bool Navigate(int flags = wxNavigationKeyEvent::IsForward);
|
||||||
|
|
||||||
|
@@ -197,6 +197,11 @@ bool wxButton::Create(wxWindow *parent,
|
|||||||
|
|
||||||
wxButton::~wxButton()
|
wxButton::~wxButton()
|
||||||
{
|
{
|
||||||
|
wxWindow *parent = GetParent();
|
||||||
|
if ( parent && parent->GetTmpDefaultItem() == this )
|
||||||
|
{
|
||||||
|
UnsetTmpDefault();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
|
Reference in New Issue
Block a user