Prev/next will (re-)scroll to first/last change-block in edge-cases

I.e when unset or already at first/last change-block (or the only one).
This commit is contained in:
goran-w 2024-11-15 13:43:05 +01:00
parent e0c219b46d
commit 96a9019487

View file

@ -78,9 +78,15 @@ namespace SourceGit.ViewModels
if (_content is Models.TextDiff textDiff) if (_content is Models.TextDiff textDiff)
{ {
if (textDiff.CurrentChangeBlockIdx > 0) if (textDiff.CurrentChangeBlockIdx > 0)
{
textDiff.CurrentChangeBlockIdx--; textDiff.CurrentChangeBlockIdx--;
else if (textDiff.CurrentChangeBlockIdx == -1 && textDiff.ChangeBlocks.Count > 0) }
textDiff.CurrentChangeBlockIdx = 0; // Jump to first change block else if (textDiff.ChangeBlocks.Count > 0)
{
// Force property value change and (re-)jump to first change block
textDiff.CurrentChangeBlockIdx = -1;
textDiff.CurrentChangeBlockIdx = 0;
}
} }
} }
@ -89,7 +95,15 @@ namespace SourceGit.ViewModels
if (_content is Models.TextDiff textDiff) if (_content is Models.TextDiff textDiff)
{ {
if (textDiff.CurrentChangeBlockIdx < textDiff.ChangeBlocks.Count - 1) if (textDiff.CurrentChangeBlockIdx < textDiff.ChangeBlocks.Count - 1)
{
textDiff.CurrentChangeBlockIdx++; textDiff.CurrentChangeBlockIdx++;
}
else if (textDiff.ChangeBlocks.Count > 0)
{
// Force property value change and (re-)jump to last change block
textDiff.CurrentChangeBlockIdx = -1;
textDiff.CurrentChangeBlockIdx = textDiff.ChangeBlocks.Count - 1;
}
} }
} }