editor: make autoscrolling optional
This commit is contained in:
parent
6d9b923461
commit
b5edcbe55d
@ -616,7 +616,7 @@ void TrackView::setEditRow(int newEditRow)
|
|||||||
setScrollPos(scrollPosX, (editRow * rowHeight) - ((windowHeight - topMarginHeight) / 2) + rowHeight / 2);
|
setScrollPos(scrollPosX, (editRow * rowHeight) - ((windowHeight - topMarginHeight) / 2) + rowHeight / 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TrackView::setEditTrack(int newEditTrack)
|
void TrackView::setEditTrack(int newEditTrack, bool autoscroll)
|
||||||
{
|
{
|
||||||
if (0 == getTrackCount()) return;
|
if (0 == getTrackCount()) return;
|
||||||
|
|
||||||
@ -646,14 +646,19 @@ void TrackView::setEditTrack(int newEditTrack)
|
|||||||
|
|
||||||
invalidateTrack(oldEditTrack);
|
invalidateTrack(oldEditTrack);
|
||||||
invalidateTrack(editTrack);
|
invalidateTrack(editTrack);
|
||||||
|
|
||||||
int firstTrack = scrollPosX / trackWidth;
|
if (autoscroll) {
|
||||||
int lastTrack = firstTrack + windowTracks;
|
int firstTrack = scrollPosX / trackWidth;
|
||||||
|
int lastTrack = firstTrack + windowTracks;
|
||||||
int newFirstTrack = firstTrack;
|
|
||||||
if (editTrack >= lastTrack) newFirstTrack = editTrack - (lastTrack - firstTrack - 1);
|
int newFirstTrack = firstTrack;
|
||||||
if (editTrack < firstTrack) newFirstTrack = editTrack;
|
if (editTrack >= lastTrack)
|
||||||
setScrollPos(newFirstTrack * trackWidth, scrollPosY);
|
newFirstTrack = editTrack - lastTrack + firstTrack + 1;
|
||||||
|
if (editTrack < firstTrack)
|
||||||
|
newFirstTrack = editTrack;
|
||||||
|
setScrollPos(newFirstTrack * trackWidth, scrollPosY);
|
||||||
|
} else
|
||||||
|
setupScrollBars();
|
||||||
}
|
}
|
||||||
|
|
||||||
static int getScrollPos(HWND hwnd, int bar)
|
static int getScrollPos(HWND hwnd, int bar)
|
||||||
|
|||||||
@ -51,7 +51,7 @@ public:
|
|||||||
void setEditRow(int newEditRow);
|
void setEditRow(int newEditRow);
|
||||||
int getEditRow() const { return editRow; }
|
int getEditRow() const { return editRow; }
|
||||||
|
|
||||||
void setEditTrack(int newEditTrack);
|
void setEditTrack(int newEditTrack, bool autoscroll = true);
|
||||||
int getEditTrack() const { return editTrack; }
|
int getEditTrack() const { return editTrack; }
|
||||||
|
|
||||||
void selectAll()
|
void selectAll()
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user