TAdvTreeView: No Ctrl-Unselect when DragDropMode<>tdmNone

Drag a TAdvTreeView on your form.

AdvTreeView1.Interaction.Multiselect := True;
AdvTreeView1.Interaction.DragDropMode := tdmMove;

Now it isn't possible anymore to unselect selected nodes with a mouse click while pressing the Shift- or Ctrl-key.

I found a position in the source code of AdvCustomTreeView.pas and inserted two conditions:

procedure TAdvCustomTreeView.HandleMouseDown

Original:
FDragMode := Assigned(FDownNode) and (Interaction.DragDropMode <> tdmNone) and not FDblClicked and not XYToNodeExpand(FDownNode, X, Y)
and not XYToNodeExtra(FDownNode, X, Y) and not XYToNodeTitleExtra(FDownNode, X, Y) and not Assigned(XYToNodeCheck(FDownNode, X, Y).ANode);

Changed:
FDragMode := Assigned(FDownNode) and (Interaction.DragDropMode <> tdmNone) and not FDblClicked and not XYToNodeExpand(FDownNode, X, Y)
and not XYToNodeExtra(FDownNode, X, Y) and not XYToNodeTitleExtra(FDownNode, X, Y) and not Assigned(XYToNodeCheck(FDownNode, X, Y).ANode)
// These lines added:
and not ((ssShift in Shift) and (msShiftSelect in Interaction.MultiSelectStyle))
and not ((ssCtrl in Shift) and (msControlSelect in Interaction.MultiSelectStyle));

Maybe another way exists already to solve this problem?

Or would it be possible to insert these changes in a future release or give the user another possibility to activate such an operating mode?

Hi,

We fixed this issue here. Thanks for reporting.

Hi Peter,
great! Thank you for your quick response.
Karsten