TAStudio: Prevent exceptions with small window size

This commit is contained in:
Isotarge 2018-10-18 21:21:52 +10:30
parent 41d1db14ef
commit c5407472cd
2 changed files with 13 additions and 1 deletions

View File

@ -140,6 +140,11 @@ namespace BizHawk.Client.EmuHawk
private void DrawData(PaintEventArgs e, List<RollColumn> visibleColumns)
{
// Prevent exceptions with small TAStudio windows
if (visibleColumns.Count == 0)
{
return;
}
if (QueryItemText != null)
{
if (HorizontalOrientation)
@ -532,6 +537,11 @@ namespace BizHawk.Client.EmuHawk
int range = Math.Min(LastVisibleRow, RowCount - 1) - startIndex + 1;
int lastVisible = LastVisibleColumnIndex;
int firstVisibleColumn = FirstVisibleColumn;
// Prevent exceptions with small TAStudio windows
if (firstVisibleColumn < 0)
{
return;
}
if (HorizontalOrientation)
{
for (int i = 0, f = 0; f < range; i++, f++)

View File

@ -1608,7 +1608,9 @@ namespace BizHawk.Client.EmuHawk
{
_vBar.Maximum = Math.Max((VisibleRows - 1) * CellHeight, _vBar.Maximum); // ScrollBar.Maximum is dumb
_vBar.LargeChange = (VisibleRows - 1) * CellHeight;
_hBar.LargeChange = DrawWidth / 2;
// DrawWidth can be negative if the TAStudio window is small enough
// Clamp LargeChange to 0 here to prevent exceptions
_hBar.LargeChange = Math.Max(0, DrawWidth / 2);
}
}