Bug #11171
Wrong cursor position after focus is changed between widgets (using UP/DOWN keys) in ChUI mode
0%
History
#1 Updated by Delia Mitric 6 months ago
This is the testcase (written by Vladimir in #10856-22):
DEFINE VARIABLE l AS LOGICAL NO-UNDO.
DEFINE VARIABLE lr AS LOGICAL NO-UNDO.
DEFINE VARIABLE l2 AS LOGICAL NO-UNDO.
DEFINE VARIABLE l2r AS LOGICAL NO-UNDO.
DEFINE VARIABLE c AS CHARACTER NO-UNDO.
DEFINE VARIABLE l3 AS LOGICAL NO-UNDO.
DEFINE VARIABLE l3r AS LOGICAL NO-UNDO.
DEFINE VARIABLE counter AS INTEGER NO-UNDO.
DEFINE FRAME f
l lr SKIP
l2 l2r SKIP
c SKIP
l3 l3r
NO-LABEL.
ENABLE ALL WITH FRAME f.
WAIT-FOR WINDOW-CLOSE OF FRAME f.
Issues:
1. Wrong caret position after focus round-trip (Down → Up)
Steps:
Press Down (focus → l2), then Up (focus returns to l)
Press Right three times (focus → lr, caret at position 0 – correct)
Press Left (focus returns to l)
Result:
OE: caret at position 0 (leftmost) – correct
FWD: caret at position 2 (rightmost) – incorrect
Note: The preliminary Down → Up sequence is required to reproduce the issue. Without it, focus returns to position 0 as expected.
2. Incorrect vertical focus movement (Up / Down) – non-strict alignment
Steps:
Move focus to c FILL-IN (bottom row)
Move caret so it is visually below l2r (positions ~5–7)
Press Up
Result:
OE: focus moves strictly upward to l2r
FWD: focus moves to l2 (left column), caret = 0 – incorrect
Similar misalignment occurs with Down key.