]> git.saurik.com Git - wxWidgets.git/commitdiff
Don't require skipping "page changed" event in wxMSW wxNotebook.
authorVadim Zeitlin <vadim@wxwidgets.org>
Sun, 7 Nov 2010 19:33:10 +0000 (19:33 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Sun, 7 Nov 2010 19:33:10 +0000 (19:33 +0000)
wxMSW wxNotebook implementation used to handle EVT_NOTEBOOK_PAGE_CHANGED event
to update the currently shown page which meant that page changing was broken
if the user code handled and didn't skip this event.

As the other ports don't require the user code to skip this event, don't do
this in wxMSW neither and always update the selected page unconditionally.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@66060 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

include/wx/msw/notebook.h
src/msw/notebook.cpp

index f925deeed799eb930bdb01206cb23a638c124d4a..d8bbb995c1625f5430d837005f8377ece9c7e8dc 100644 (file)
@@ -148,7 +148,6 @@ public:
   // callbacks
   // ---------
   void OnSize(wxSizeEvent& event);
-  void OnSelChange(wxBookCtrlEvent& event);
   void OnNavigationKey(wxNavigationKeyEvent& event);
 
   // base class virtuals
index 046096b05f5a63ef886f2cfc5e0dca7e385f83d3..05a1136e4a3dfaded1b05a3c71ed9ea4fdb56148 100644 (file)
@@ -122,7 +122,6 @@ static bool HasTroubleWithNonTopTabs()
 WX_DEFINE_LIST( wxNotebookPageInfoList )
 
 BEGIN_EVENT_TABLE(wxNotebook, wxBookCtrlBase)
-    EVT_NOTEBOOK_PAGE_CHANGED(wxID_ANY, wxNotebook::OnSelChange)
     EVT_SIZE(wxNotebook::OnSize)
     EVT_NAVIGATION_KEY(wxNotebook::OnNavigationKey)
 
@@ -457,6 +456,8 @@ int wxNotebook::SetSelection(size_t nPage)
             // program allows the page change
             SendPageChangedEvent(m_selection, nPage);
 
+            UpdateSelection(nPage);
+
             TabCtrl_SetCurSel(GetHwnd(), nPage);
         }
     }
@@ -1082,18 +1083,6 @@ void wxNotebook::OnSize(wxSizeEvent& event)
     event.Skip();
 }
 
-void wxNotebook::OnSelChange(wxBookCtrlEvent& event)
-{
-    // is it our tab control?
-    if ( event.GetEventObject() == this )
-    {
-        UpdateSelection(event.GetSelection());
-    }
-
-    // we want to give others a chance to process this message as well
-    event.Skip();
-}
-
 void wxNotebook::OnNavigationKey(wxNavigationKeyEvent& event)
 {
     if ( event.IsWindowChange() ) {
@@ -1446,6 +1435,9 @@ bool wxNotebook::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM* result)
   event.SetInt(idCtrl);
 
   bool processed = HandleWindowEvent(event);
+  if ( hdr->code == TCN_SELCHANGE )
+      UpdateSelection(event.GetSelection());
+
   *result = !event.IsAllowed();
   return processed;
 }