]> git.saurik.com Git - wxWidgets.git/commitdiff
unset the button as temporary default item when it's destroyed (closes bug 1354875)
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 16 Jul 2006 19:50:48 +0000 (19:50 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 16 Jul 2006 19:50:48 +0000 (19:50 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@40135 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/containr.h
include/wx/window.h
src/msw/button.cpp

index cd79e5dd5b99f7d0195b65485f073f40e750e6f9..34823cfab31c839b280b31835c3912c0ffab301b 100644 (file)
@@ -56,6 +56,10 @@ public:
     // soon after a call to SetTmpDefaultItem(window)
     void SetTmpDefaultItem(wxWindow *win) { m_winTmpDefault = win; }
 
     // 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);
     // 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 *GetDefaultItem() const; \
     virtual wxWindow *SetDefaultItem(wxWindow *child); \
     virtual void SetTmpDefaultItem(wxWindow *win); \
+    virtual wxWindow *GetTmpDefaultItem() const; \
     virtual bool AcceptsFocus() const; \
 \
 protected: \
     virtual bool AcceptsFocus() const; \
 \
 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 ) \
 { \
     m_container.HandleOnNavigationKey(event); \
 void classname::OnNavigationKey( wxNavigationKeyEvent& event ) \
 { \
     m_container.HandleOnNavigationKey(event); \
index 2462fb0d27608caeacc5bbddce9ae3a598d88961..9ac9397953b80cb583efd5c7659f955cd2b81036 100644 (file)
@@ -528,6 +528,9 @@ public:
         // set this child as temporary default
     virtual void SetTmpDefaultItem(wxWindow * WXUNUSED(win)) { }
 
         // 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);
 
         // navigates in the specified direction by sending a wxNavigationKeyEvent
     virtual bool Navigate(int flags = wxNavigationKeyEvent::IsForward);
 
index afb56709925575911b1424f529612aef928363e4..08361d58b6da5d404e9cc6964e8f127a8e615897 100644 (file)
@@ -197,6 +197,11 @@ bool wxButton::Create(wxWindow *parent,
 
 wxButton::~wxButton()
 {
 
 wxButton::~wxButton()
 {
+    wxWindow *parent = GetParent();
+    if ( parent && parent->GetTmpDefaultItem() == this )
+    {
+        UnsetTmpDefault();
+    }
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------