[BListView] multi-selection not preserved when DnD'ing
|Reported by:||ttcoder||Owned by:||nobody|
|Has a Patch:||no||Platform:||All|
Drag'n'drop interacts badly with multi-selection; so in essence, one has to DnD items one by one instead of being able to DnD all of your selection at once.
- find a BListView populated with several items and which supports DnD.
- select a bunch of items (holding down shift).
- drag'n'drop the selected bloc (taking care to click _inside_ the selected bloc, not on an unselected item outside of it of course).
- the items should be dragged "en masse".
- just before the DnD session is started, the multiple selection is cancelled and only the one item below the mouse pointer is selected, instead. This results in dragging only one of the (previously selected) items. That is, unless you held down the option key.
Playing with it I've found the code actually requires holding down the option / cmd key, not just when multi-selecting but also during the actual DnD session; if you do this, it will preserve the selection and let you DnD all of the selection as intended. This is something of a regression from BeOS, which did not require hodling down a key, which was more intuitive... With this new state of affair we might get some support calls from clients who don't figure it out :-)
Did not look into a patch, but I suppose selection is handled in MouseDown() whereas it should be handled in MouseUp() or MouseMoved(): in MouseDown() it's too soon to to determine if the user is starting a DnD or just cancelling the selection.
(this bug -- or is it an enhancement? -- has been there a while, and is still there in alpha4.1)
Change History (14)
comment:1 by , 7 years ago
|Summary:||[BTextView] multi-selection not preserved when DnD'ing → [BListView] multi-selection not preserved when DnD'ing|