fix(tracker): when the track editor was scrolled, the jump pointer event regions were wrong

This commit is contained in:
vsariola 2021-02-16 09:46:49 +02:00
parent 0377cd4287
commit 962d0f1152

View File

@ -198,19 +198,19 @@ func (t *Tracker) layoutTracks(gtx C) D {
t.EditMode = EditTracks t.EditMode = EditTracks
t.Cursor.Track = int(e.Position.X) / trackColWidth t.Cursor.Track = int(e.Position.X) / trackColWidth
t.Cursor.Pattern = 0 t.Cursor.Pattern = 0
t.Cursor.Row = int(e.Position.Y) / trackRowHeight t.Cursor.Row = int((e.Position.Y-float32(gtx.Constraints.Max.Y-trackRowHeight)/2)/trackRowHeight + float32(cursorSongRow))
t.Cursor.Clamp(t.song) t.Cursor.Clamp(t.song)
t.SelectionCorner = t.Cursor t.SelectionCorner = t.Cursor
cursorSongRow = t.Cursor.Pattern*t.song.RowsPerPattern + t.Cursor.Row cursorSongRow = t.Cursor.Pattern*t.song.RowsPerPattern + t.Cursor.Row
} }
} }
op.Offset(f32.Pt(0, float32(gtx.Constraints.Max.Y-trackRowHeight)/2)).Add(gtx.Ops) rect := image.Rect(0, 0, gtx.Constraints.Max.X, gtx.Constraints.Max.Y)
op.Offset(f32.Pt(0, (-1*trackRowHeight)*float32(cursorSongRow))).Add(gtx.Ops)
rect := image.Rect(0, 0, trackColWidth*len(t.song.Tracks), trackRowHeight*t.song.TotalRows())
pointer.Rect(rect).Add(gtx.Ops) pointer.Rect(rect).Add(gtx.Ops)
pointer.InputOp{Tag: &trackJumpPointerTag, pointer.InputOp{Tag: &trackJumpPointerTag,
Types: pointer.Press, Types: pointer.Press,
}.Add(gtx.Ops) }.Add(gtx.Ops)
op.Offset(f32.Pt(0, float32(gtx.Constraints.Max.Y-trackRowHeight)/2)).Add(gtx.Ops)
op.Offset(f32.Pt(0, (-1*trackRowHeight)*float32(cursorSongRow))).Add(gtx.Ops)
if t.EditMode == EditPatterns || t.EditMode == EditTracks { if t.EditMode == EditPatterns || t.EditMode == EditTracks {
x1, y1 := t.Cursor.Track, t.Cursor.Pattern x1, y1 := t.Cursor.Track, t.Cursor.Pattern
x2, y2 := t.SelectionCorner.Track, t.SelectionCorner.Pattern x2, y2 := t.SelectionCorner.Track, t.SelectionCorner.Pattern