Add wxBookCtrlBase::DoSetSelectionAfterRemoval() and use it in wxSimplebook.
This fixes the wrong handling of the selection in wxSimplebook when the currently selected page was deleted. Also extend the unit tests to check for this bug. Closes #15188. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@74279 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -256,6 +256,10 @@ protected:
|
||||
// false otherwise.
|
||||
bool DoSetSelectionAfterInsertion(size_t n, bool bSelect);
|
||||
|
||||
// Update the selection after removing the page at the given index,
|
||||
// typically called from the derived class overridden DoRemovePage().
|
||||
void DoSetSelectionAfterRemoval(size_t n);
|
||||
|
||||
// set the selection to the given page, sending the events (which can
|
||||
// possibly prevent the page change from taking place) if SendEvent flag is
|
||||
// included
|
||||
@@ -292,7 +296,11 @@ protected:
|
||||
// having nodes without any associated page)
|
||||
virtual bool AllowNullPage() const { return false; }
|
||||
|
||||
// remove the page and return a pointer to it
|
||||
// Remove the page and return a pointer to it.
|
||||
//
|
||||
// It also needs to update the current selection if necessary, i.e. if the
|
||||
// page being removed comes before the selected one and the helper method
|
||||
// DoSetSelectionAfterRemoval() can be used for this.
|
||||
virtual wxWindow *DoRemovePage(size_t page) = 0;
|
||||
|
||||
// our best size is the size which fits all our pages
|
||||
|
Reference in New Issue
Block a user