Line operations selects all lines with same timestamp #38

Closed
opened 2026-07-30 01:10:37 +09:00 by AnthonyKwon · 0 comments
Owner

Expected Behavior

Line operations should not change selected lines, unless user selected multiples lines and performed Move Row Up/Down operations.
(Move Row Up/Down operation is currently planned as single-line only operation, might be changed later).

Actual Behavior

When line operation is performed, editor selects every line with same timestamp value.

Initial State:

Line Add:

Move Up:

Move Down:

Line Delete:

Additional Context

Lyric_DataUpdated, which triggers on every line change, seems to be the source of this issue.

foreach (var line in Lines.Where(l => oldSelections.Contains(l.Data.Time)))


When it re-synchronise the selection with new data, it compares old selection list with new line data, to create new selection list.
But it only compares the timestamp. Timestamp is very likely to collide with other lines, so other method should be used.

## Expected Behavior Line operations should not change selected lines, unless user selected multiples lines and performed Move Row Up/Down operations. (Move Row Up/Down operation is currently planned as single-line only operation, might be changed later). ## Actual Behavior When line operation is performed, editor selects every line with same timestamp value. Initial State: <img src="/attachments/79f93301-0837-4059-bab6-56aee8527174" width="50%"> Line Add: <img src="/attachments/3d1a7a73-4f59-48e8-ae88-9701a74fd7d2" width="50%"> Move Up: <img src="/attachments/258e4c6e-c3a9-42ec-83c6-68e4d064ed12" width="50%"> Move Down: <img src="/attachments/42049580-afda-4bad-993c-ee5c4e040f32" width="50%"> Line Delete: <img src="/attachments/8ddaacdc-7cbc-4bab-8d54-db95cd94cf35" width="50%"> ## Additional Context `Lyric_DataUpdated`, which triggers on every line change, seems to be the source of this issue. https://git.thonlog.com/AnthonyKwon/ti_lyricstudio/src/commit/c6d8eda6b7a3b8eb4872a4bd049a022d0d0fcd8e/ti_lyricstudio/ViewModels/PlayerUI/EditorViewModel.cs#L188 When it re-synchronise the selection with new data, it compares old selection list with new line data, to create new selection list. But it only compares the timestamp. Timestamp is very likely to collide with other lines, so other method should be used.
AnthonyKwon added this to the 0.2.0.0 milestone 2026-07-30 01:10:37 +09:00
Sign in to join this conversation.
No description provided.