// common part of all ctors
void wxNotebook::Init()
{
- m_imageList = NULL;
-
#if wxUSE_UXTHEME
m_hbrBackground = NULL;
#endif // wxUSE_UXTHEME
#if USE_NOTEBOOK_ANTIFLICKER
m_hasSubclassedUpdown = false;
+ m_doneUpdateHack = false;
#endif // USE_NOTEBOOK_ANTIFLICKER
}
}
}
}
+
+ // Probably because of the games we play above to avoid flicker sometimes
+ // the text controls inside notebook pages are not shown correctly (they
+ // don't have their borders) when the notebook is shown for the first time.
+ // It's not really clear why does this happen and maybe the bug is in
+ // wxTextCtrl itself and not here but updating the page when it's about to
+ // be shown doesn't cost much and works around the problem so do it here
+ // for now.
+ if ( !m_doneUpdateHack && IsShownOnScreen() )
+ {
+ m_doneUpdateHack = true;
+ wxWindow* const page = GetCurrentPage();
+ if ( page )
+ page->Update();
+ }
#endif // USE_NOTEBOOK_ANTIFLICKER
event.Skip();
event.SetEventObject(this);
event.SetInt(idCtrl);
- bool processed = HandleWindowEvent(event);
+ // Change the selection before generating the event as its handler should
+ // already see the new page selected.
if ( hdr->code == TCN_SELCHANGE )
UpdateSelection(event.GetSelection());
+ bool processed = HandleWindowEvent(event);
*result = !event.IsAllowed();
return processed;
}