Fix spurious selection events generation in generic wxDataViewCtrl

Don't send a wxEVT_DATAVIEW_SELECTION_CHANGED event if an already selected
item is clicked, this is unexpected and inconsistent with the other platforms.

Split SelectAllRows(bool) method in a (trivial) SelectAllRows() and a more
useful UnselectAllRows() which now can check if a particular row is selected
and leave it selected in this case, helping implementing the correct logic and
also avoiding an extra unnecessary refresh due to deselecting the item first
and then selecting it again.
This commit is contained in:
Vadim Zeitlin
2016-02-06 02:04:00 +01:00
parent 189aedd89a
commit 73f2603917
2 changed files with 53 additions and 24 deletions

View File

@@ -183,6 +183,7 @@ wxMSW:
- Fix updating wxSlider background when its parent background changes.
- Implement wxListBox::EnsureVisible() (RIVDSL).
- Drastically improve efficiency of selecting all items in wxDataViewCtrl.
- Fix spurious selection events generation in wxDataViewCtrl.
- Fix wxMenuEvent::GetMenu() for wxEVT_MENU_{OPEN,CLOSE} in MDI frames.
- Fix updating wxSpinCtrlDouble tooltip text (Laurent Poujoulat).
- Fix appearance of checked disabled wxToolBar tools with custom images.