From 966b84b9140622dd94b081206bb52ceb5ce2c401 Mon Sep 17 00:00:00 2001 From: Chris Elliott Date: Thu, 25 Aug 2005 21:58:22 +0000 Subject: [PATCH] fix gpf in mdi sample with motif when child is closed git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@35316 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/generic/tabg.cpp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/generic/tabg.cpp b/src/generic/tabg.cpp index 8ec1549f2b..1d913425cd 100644 --- a/src/generic/tabg.cpp +++ b/src/generic/tabg.cpp @@ -1029,6 +1029,10 @@ void wxTabView::SetBackgroundColour(const wxColour& col) m_backgroundBrush = wxTheBrushList->FindOrCreateBrush(col, wxSOLID); } +// this may be called with sel = zero (which doesn't match any page) +// when wxMotif deletes a page +// so return the first tab... + void wxTabView::SetTabSelection(int sel, bool activateTool) { if ( sel==m_tabSelection ) @@ -1036,6 +1040,7 @@ void wxTabView::SetTabSelection(int sel, bool activateTool) int oldSel = m_tabSelection; wxTabControl *control = FindTabControlForId(sel); + if (sel == 0) sel=control->GetId(); wxTabControl *oldControl = FindTabControlForId(m_tabSelection); if (!OnTabPreActivate(sel, oldSel)) @@ -1062,6 +1067,8 @@ void wxTabView::SetTabSelection(int sel, bool activateTool) } // Find tab control for id +// this may be called with zero (which doesn't match any page) +// so return the first control... wxTabControl *wxTabView::FindTabControlForId(int id) const { wxTabLayerList::compatibility_iterator node1 = m_layers.GetFirst(); @@ -1072,7 +1079,7 @@ wxTabControl *wxTabView::FindTabControlForId(int id) const while (node2) { wxTabControl *control = (wxTabControl *)node2->GetData(); - if (control->GetId() == id) + if (control->GetId() == id || id == 0) return control; node2 = node2->GetNext(); } -- 2.45.2