]> git.saurik.com Git - wxWidgets.git/blobdiff - src/common/bookctrl.cpp
Avoid resetting size if paper id not found
[wxWidgets.git] / src / common / bookctrl.cpp
index 7f398c2738e59fe644904f0ffc1d58bda0d7242d..d45ff84f7db2a994a58b1b4ca56984557351ddd6 100644 (file)
@@ -229,6 +229,13 @@ void wxBookCtrlBase::DoSize()
                     sizeCtrl( GetControllerSize() );
 
         m_bookctrl->SetClientSize( sizeCtrl.x - sizeBorder.x, sizeCtrl.y - sizeBorder.y );
+        // if this changes the visibility of the scrollbars the best size changes, relayout in this case
+        wxSize sizeCtrl2 = GetControllerSize();
+        if ( sizeCtrl != sizeCtrl2 )
+        {
+            wxSize sizeBorder2 = m_bookctrl->GetSize() - m_bookctrl->GetClientSize();
+            m_bookctrl->SetClientSize( sizeCtrl2.x - sizeBorder2.x, sizeCtrl2.y - sizeBorder2.y );
+        }
 
         const wxSize sizeNew = m_bookctrl->GetSize();
         wxPoint posCtrl;
@@ -448,7 +455,7 @@ int wxBookCtrlBase::DoSetSelection(size_t n, int flags)
 
     if ( n != (size_t)oldSel )
     {
-        wxBookCtrlBaseEvent *event = CreatePageChangingEvent();
+        wxBookCtrlEvent *event = CreatePageChangingEvent();
         bool allowed = false;
 
         if ( flags & SetSelection_SendEvent )
@@ -486,5 +493,6 @@ int wxBookCtrlBase::DoSetSelection(size_t n, int flags)
     return oldSel;
 }
 
+IMPLEMENT_DYNAMIC_CLASS(wxBookCtrlEvent, wxNotifyEvent)
 
 #endif // wxUSE_BOOKCTRL