public override void WheelMoved(int x, int y) { var speed = -y * 50; if (Keyboard.IsDown(KeyConstant.LCtrl)) { if (TextFont.Size + y < 8 || TextFont.Size + y > 35) { return; } TextFont.Derive(TextFont.Size + y); ComputeFontHeight(); } else { // > Scroll X if (Keyboard.IsDown(KeyConstant.LShift)) { SetCameraX(Camera.X + speed); } //Camera.X = Math.Clamp( Camera.X + speed, 0, Lines.Aggregate( 0, ( acc, x ) => Math.Max( TextFont.GetWidth( x ), acc ) ) * .75f - CounterWidth ); // > Scroll Y else { Camera.Y = Math.Clamp(Camera.Y + speed, 0, LineHeight * Lines.Count * .95f); } } }