Bug #10654
TreeList MultiSelect Mode Issues
0%
History
#1 Updated by Vladimir Tsichevski 10 months ago
Issue 1: Incorrect Node Selection in MultiSelect Mode¶
Steps to reproduce:
- Expand a node.
- Set
MultiSelect(FALSE) = TRUE. - Select the expanded node with a mouse click.
- Select any child of the expanded node with a Shift-Down.
- In OpenEdge (OE): The selected node is marked with a dotted rectangle.
- In FWD: The selected node is marked with a dotted rectangle, but the first child of the expanded node is also incorrectly marked as selected (with a blue background).
Issue 2: Client Crash in MultiSelect Mode¶
After the above steps:
- Set
MultiSelect(TRUE) = TRUE. - Select a node range starting with a mouse click.
- Select the range end with a Shift-click.
This triggers a client crash with an assertion error in TreeGuiImpl, isSiblingLowerThan method, as isSiblingLowerThan receives two non-sibling nodes.
Note¶
The client crash (Issue 2) occurs only after the incorrect node selection (Issue 1), suggesting that the first issue likely introduces a state that causes the subsequent crash.
#2 Updated by Greg Shah 10 months ago
By assertion failure, do you mean that our code is intentionally abending (exiting the client session)? This is something that should not be possible. It doesn't matter if the state of a widget is not correct, interacting with a widget should never unexpectedly end the user's session.
SO: I would add a 3rd issue here: eliminate all usage of this assertion/abend pattern.
#4 Updated by Vladimir Tsichevski 10 months ago
Issue 4: Selection Processing on Mouse Up vs. Mouse Down¶
In OE, a selection change is processed on mouse release. In FWD, it is processed on mouse down.
This causes an issue: in OE, dragging a node does not change the selection. In FWD, dragging a non-focused node (which may indicate another bug) triggers a selection change, behaving as if the node was clicked.