Project

General

Profile

Bug #4626 » 0001-Restore-ClearAndSelect-on-clicks-without-drag-v2.patch

Bruce Toll, 02/09/2016 04:29 PM

View differences:

src/Wt/WAbstractItemView
int rowHeaderCount_;
WString computedDragMimeType_;
bool sortEnabled_;
WModelIndex delayedClearAndSelectIndex_;
JSignal<int, int> columnWidthChanged_;
Signal<int, WLength> columnResized_;
src/Wt/WAbstractItemView.C
selectionModel_->setSelectionBehavior(oldSelectionModel->selectionBehavior());
delete oldSelectionModel;
delayedClearAndSelectIndex_ = WModelIndex();
editedItems_.clear();
if (!isReset)
......
extendSelection(index);
else {
if (!(modifiers & (ControlModifier | MetaModifier))) {
if (!isSelected(index))
if (!dragEnabled_)
select(index, ClearAndSelect);
else {
if (!isSelected(index))
select(index, ClearAndSelect);
else
delayedClearAndSelectIndex_ = index;
}
} else
select(index, ToggleSelect);
}
......
void WAbstractItemView::handleClick(const WModelIndex& index,
const WMouseEvent& event)
{
if (dragEnabled_ && delayedClearAndSelectIndex_.isValid() &&
event.dragDelta().x < 4 && event.dragDelta().y < 4) {
select(delayedClearAndSelectIndex_, ClearAndSelect);
}
bool doEdit = index.isValid() && (editTriggers() & SingleClicked);
if (doEdit)
......
bool doEdit = index.isValid() &&
(editTriggers() & SelectedClicked) && isSelected(index);
delayedClearAndSelectIndex_ = WModelIndex();
if (index.isValid())
selectionHandleClick(index, event.modifiers());
(3-3/3)