mirror of
https://github.com/ClassiCube/ClassiCube.git
synced 2025-09-15 18:45:23 -04:00
Fix using scroll wheel on last column past last valid item crashing the client. (Thanks nyxzimus)
This commit is contained in:
parent
31753e1f9e
commit
a5d91ca5cb
@ -23,16 +23,17 @@ namespace ClassicalSharp {
|
||||
public override bool HandlesMouseScroll( int delta ) {
|
||||
bool bounds = Contains( TableX, TableY, TableWidth, TableHeight,
|
||||
game.Mouse.X, game.Mouse.Y );
|
||||
if( !bounds ) return false;
|
||||
if( !bounds || selIndex == -1 ) return false;
|
||||
delta = -delta;
|
||||
int startScrollY = scrollY;
|
||||
scrollY -= delta;
|
||||
ClampScrollY();
|
||||
selIndex += delta * blocksPerRow;
|
||||
|
||||
int diffY = scrollY - startScrollY;
|
||||
if( selIndex >= 0 ) {
|
||||
selIndex += diffY * blocksPerRow;
|
||||
RecreateBlockInfoTexture();
|
||||
}
|
||||
if( selIndex >= blocksTable.Length || selIndex < 0 )
|
||||
selIndex -= delta * blocksPerRow;
|
||||
Utils.Clamp( ref selIndex, 0, blocksTable.Length - 1 );
|
||||
int endScrollY = selIndex / blocksPerRow;
|
||||
|
||||
UpdateSelectedState();
|
||||
return true;
|
||||
}
|
||||
int scrollY;
|
||||
|
@ -174,7 +174,7 @@ namespace ClassicalSharp {
|
||||
lastCreatedIndex = selIndex;
|
||||
|
||||
graphicsApi.DeleteTexture( ref blockInfoTexture );
|
||||
if( selIndex == -1 || selIndex >= blocksTable.Length ) return;
|
||||
if( selIndex == -1 ) return;
|
||||
|
||||
Block block = blocksTable[selIndex];
|
||||
UpdateBlockInfoString( block );
|
||||
|
Loading…
x
Reference in New Issue
Block a user