diff --git a/synctracker2.vcproj b/synctracker2.vcproj
index b51069a..a1c4bc8 100644
--- a/synctracker2.vcproj
+++ b/synctracker2.vcproj
@@ -116,7 +116,8 @@
windowWidth)
+ {
+ setScrollPos(scrollPosX + trackWidth, scrollPosY);
+ }
+ else setupScrollBars();
}
static int getScrollPos(HWND hwnd, int bar)
@@ -370,29 +374,32 @@ void TrackView::onHScroll(UINT sbCode, int newPos)
switch (sbCode)
{
case SB_LEFT:
- setScrollPos(0, scrollPosY);
+ setEditTrack(0);
+ break;
+
+ case SB_RIGHT:
+ setEditTrack(tracks - 1);
break;
- // SB_RIGHT currently missing.
case SB_LINELEFT:
- setScrollPos(scrollPosX - fontWidth, scrollPosY);
+ setEditTrack(editTrack - 1);
break;
case SB_LINERIGHT:
- setScrollPos(scrollPosX + fontWidth, scrollPosY);
+ setEditTrack(editTrack + 1);
break;
case SB_PAGELEFT:
- setScrollPos(scrollPosX - 20, scrollPosY);
+ setEditTrack(editTrack - windowTracks);
break;
case SB_PAGEDOWN:
- setScrollPos(scrollPosX + 20, scrollPosY);
+ setEditTrack(editTrack + windowTracks);
break;
case SB_THUMBPOSITION:
case SB_THUMBTRACK:
- setScrollPos(getScrollPos(hwnd, SB_HORZ), scrollPosY);
+ setEditTrack(getScrollPos(hwnd, SB_HORZ));
break;
}
}
@@ -420,7 +427,8 @@ void TrackView::onSize(int width, int height)
windowWidth = width;
windowHeight = height;
- windowLines = (height - topMarginHeight) / fontHeight;
+ windowLines = (height - topMarginHeight) / fontHeight;
+ windowTracks = (width - leftMarginWidth) / trackWidth;
setEditLine(editLine);
setupScrollBars();
diff --git a/trackview.h b/trackview.h
index d9b9dc2..c86b9b0 100644
--- a/trackview.h
+++ b/trackview.h
@@ -34,7 +34,7 @@ public:
int scrollPosX, scrollPosY;
int windowWidth, windowHeight;
- int windowLines;
+ int windowLines, windowTracks;
HWND hwnd;