Buggy code:
private ImmutableArray < Entity > bars ; private ImmutableArray < Entity > text ; private ImmutableArray < Entity > textButtons ; private SpriteBatch batch ; private ShapeRenderer shape ; private OrthographicCamera camera ; private ComponentMapper < UiPositionComponent > pm = ComponentMapper . getFor ( UiPositionComponent . class ) ; private ComponentMapper < TextureComponent > tm = ComponentMapper . getFor ( TextureComponent . class ) ; private ComponentMapper < MultiTextureComponent > tmm = ComponentMapper . getFor ( MultiTextureComponent . class ) ; private ComponentMapper < MultiRegionComponent > mrm = ComponentMapper . getFor ( MultiRegionComponent . class ) ; private ComponentMapper < UiMouseActivityComponent > mm = ComponentMapper . getFor ( UiMouseActivityComponent . class ) ; private ComponentMapper < TextComponent > txtm = ComponentMapper . getFor ( TextComponent . class ) ; private ComponentMapper < CardDisplayComponent > cm = ComponentMapper . getFor ( CardDisplayComponent . class ) ; private ComponentMapper < BarComponent > bm = ComponentMapper . getFor ( BarComponent . class ) ; private float stateTime = 0.0F ; private SpriteAnimation exampleAnim ; public UiSystem ( OrthographicCamera camera ) { } @ Override public void addedToEngine ( Engine engine ) { } @ Override public void removedFromEngine ( Engine engine ) { } @ Override public void update ( float deltaTime ) { } @ Override public boolean keyDown ( int keycode ) { } @ Override public boolean keyUp ( int keycode ) { } @ Override public boolean keyTyped ( char character ) { } @ Override public boolean touchDown ( int screenX , int screenY , int pointer , int button ) { UiPositionComponent position ; MultiTextureComponent multiVisual ; MultiRegionComponent multiRegion ; UiMouseActivityComponent mouse ; TextComponent text ; for ( int i = 0 ; i < ( uiButtons . size ( ) ) ; ++ i ) { Entity e = uiButtons . get ( i ) ; position = pm . get ( e ) ; multiVisual = tmm . get ( e ) ; mouse = mm . get ( e ) ; if ( multiVisual . visible ) { MousePos mousePos = Mouse . getMouse ( ) ; TextureRegion region = multiVisual . regions . get ( multiVisual . frame ) ; boolean isInBounds = ( ( ( ( position . x ) <= ( mousePos . x ) ) && ( ( position . y ) <= ( mousePos . y ) ) ) && ( ( ( position . x ) + ( region . getRegionWidth ( ) ) ) >= ( mousePos . x ) ) ) && ( ( ( position . y ) + ( region . getRegionHeight ( ) ) ) >= ( mousePos . y ) ) ; UiButtonEntity btn = ( ( UiButtonEntity ) ( e ) ) ; if ( ( isInBounds && ( mouse . mouseActive ) ) && ( input . isButtonPressed ( LEFT ) ) ) { if ( btn . mD ( mousePos . x , mousePos . y ) ) break ; } } } for ( int i = 0 ; i < ( uiMultiButtons . size ( ) ) ; ++ i ) { Entity e = uiMultiButtons . get ( i ) ; position = pm . get ( e ) ; multiRegion = mrm . get ( e ) ; mouse = mm . get ( e ) ; if ( multiRegion . visible ) { MousePos mousePos = Mouse . getMouse ( ) ; TextureRegion region = multiRegion . regions . get ( 0 ) ; boolean isInBounds = ( ( ( ( position . x ) <= ( mousePos . x ) ) && ( ( position . y ) <= ( mousePos . y ) ) ) && ( ( ( position . x ) + ( region . getRegionWidth ( ) ) ) >= ( mousePos . x ) ) ) && ( ( ( position . y ) + ( region . getRegionHeight ( ) ) ) >= ( mousePos . y ) ) ; CharacterImageEntity btn = ( ( CharacterImageEntity ) ( e ) ) ; <START_BUG> if ( ( isInBounds && ( mouse . mouseActive ) ) && ( ! ( input . isButtonPressed ( LEFT ) ) ) ) { <END_BUG> if ( btn . mD ( mousePos . x , mousePos . y ) ) break ; } } } for ( int i = 0 ; i < ( textButtons . size ( ) ) ; ++ i ) { Entity e = textButtons . get ( i ) ; position = pm . get ( e ) ; mouse = mm . get ( e ) ; text = txtm . get ( e ) ; if ( text . visible ) { MousePos mousePos = Mouse . getMouse ( ) ; boolean isInBounds = ( ( ( ( position . x ) <= ( mousePos . x ) ) && ( ( position . y ) <= ( mousePos . y ) ) ) && ( ( ( position . x ) + 50 ) >= ( mousePos . x ) ) ) && ( ( ( position . y ) + 50 ) >= ( mousePos . y ) ) ; TextButtonEntity btn = ( ( TextButtonEntity ) ( e ) ) ; if ( ( isInBounds && ( mouse . mouseActive ) ) && ( input . isButtonPressed ( LEFT ) ) ) { if ( btn . mD ( mousePos . x , mousePos . y ) ) break ; } } } return true ; } @ Override public boolean touchUp ( int screenX , int screenY , int pointer , int button ) { } @ Override public boolean touchDragged ( int screenX , int screenY , int pointer ) { } @ Override public boolean mouseMoved ( int screenX , int screenY ) { } @ Override public boolean scrolled ( int amount ) { } }

Fix:
if ( ( isInBounds && ( mouse . mouseActive ) ) && ( input . isButtonPressed ( LEFT ) ) ) {