From 8ce5b9099ba5dca932bf2467e590f9c04951ef8f Mon Sep 17 00:00:00 2001 From: John Roberts Date: Thu, 15 Oct 2015 16:24:04 +0200 Subject: [PATCH] Send PAGE_CHANGED event after page change in wxOSX wxNotebook Also reuse DoSetSelection() from OSXHandleClicked() to ensure the behaviour is consistent when changing the selection programmatically or interactively. Closes #17202. --- src/osx/notebook_osx.cpp | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/src/osx/notebook_osx.cpp b/src/osx/notebook_osx.cpp index 2b1330cd9c..29391e583c 100644 --- a/src/osx/notebook_osx.cpp +++ b/src/osx/notebook_osx.cpp @@ -100,11 +100,15 @@ int wxNotebook::DoSetSelection(size_t nPage, int flags) return m_selection; } //else: program allows the page change - - SendPageChangedEvent(m_selection, nPage); } - ChangePage(m_selection, nPage); + // m_selection is set to newSel in ChangePage() + // so store its value for event use. + int oldSelection = m_selection; + ChangePage(oldSelection, nPage); + + if ( flags & SetSelection_SendEvent ) + SendPageChangedEvent(oldSelection, nPage); } //else: no change @@ -453,18 +457,8 @@ bool wxNotebook::OSXHandleClicked( double WXUNUSED(timestampsec) ) SInt32 newSel = GetPeer()->GetValue() - 1 ; if ( newSel != m_selection ) { - if ( SendPageChangingEvent(newSel) ) - { - // m_selection is set to newSel in ChangePage() - // so store its value for event use. - int oldSel = m_selection; - ChangePage(oldSel, newSel); - SendPageChangedEvent(oldSel, newSel); - } - else - { + if ( DoSetSelection(newSel, SetSelection_SendEvent ) != newSel ) GetPeer()->SetValue( m_selection + 1 ) ; - } status = true ; }