@@ -576,10 +576,10 @@ end; |
| 576 |
|
576 |
|
| 577 |
procedure TTrackerGrid.ClampCursors; |
577 |
procedure TTrackerGrid.ClampCursors; |
| 578 |
begin |
578 |
begin |
| 579 |
Cursor.Y := Min(High(TPattern), Max(Low(TPattern), Cursor.Y)); |
579 |
Cursor.Y := EnsureRange(Cursor.Y, Low(TPattern), High(TPattern)); |
| 580 |
Cursor.X := Min(High(Patterns), Max(Low(Patterns), Cursor.X)); |
580 |
Cursor.X := EnsureRange(Cursor.X, Low(TPattern), High(TPattern)); |
| 581 |
Other.Y := Min(High(TPattern), Max(Low(TPattern), Other.Y)); |
581 |
Other.Y := EnsureRange(Other.Y, Low(TPattern), High(TPattern)); |
| 582 |
Other.X := Min(High(Patterns), Max(Low(Patterns), Other.X)); |
582 |
Other.X := EnsureRange(Other.X, Low(TPattern), High(TPattern)); |
| 583 |
end; |
583 |
end; |
| 584 |
|
584 |
|
| 585 |
procedure TTrackerGrid.NormalizeCursors; |
585 |
procedure TTrackerGrid.NormalizeCursors; |
@@ -616,7 +616,7 @@ begin |
| 616 |
for C := Cursor.X to Other.X do |
616 |
for C := Cursor.X to Other.X do |
| 617 |
if Patterns[C]^[R].Note <> NO_NOTE then |
617 |
if Patterns[C]^[R].Note <> NO_NOTE then |
| 618 |
Patterns[C]^[R].Note := |
618 |
Patterns[C]^[R].Note := |
| 619 |
Max(LOWEST_NOTE, Min(HIGHEST_NOTE, Patterns[C]^[R].Note + Semitones)); |
619 |
EnsureRange(Patterns[C]^[R].Note + Semitones, LOWEST_NOTE, HIGHEST_NOTE); |
| 620 |
|
620 |
|
| 621 |
Invalidate; |
621 |
Invalidate; |
| 622 |
SaveUndoState; |
622 |
SaveUndoState; |
@@ -894,8 +894,8 @@ end; |
| 894 |
|
894 |
|
| 895 |
function TTrackerGrid.MousePosToSelection(X, Y: Integer): TSelectionPos; |
895 |
function TTrackerGrid.MousePosToSelection(X, Y: Integer): TSelectionPos; |
| 896 |
begin |
896 |
begin |
| 897 |
X := Max(0, Min(Width-1, X)); |
897 |
X := EnsureRange(Width-1, 0, X); |
| 898 |
Y := Max(0, Min(Height-1, Y)); |
898 |
Y := EnsureRange(Height-1, 0, Y); |
| 899 |
|
899 |
|
| 900 |
Result.X := Trunc((X/Width)*NUM_COLUMNS); |
900 |
Result.X := Trunc((X/Width)*NUM_COLUMNS); |
| 901 |
Result.Y := Trunc((Y/Height)*NUM_ROWS); |
901 |
Result.Y := Trunc((Y/Height)*NUM_ROWS); |