|  | @@ -280,15 +280,20 @@ void CTextBox::resize(Point newSize)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void CTextBox::setText(const std::string &text)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | +	label->pos.w = pos.w; // reset to default before textSize.y check
 | 
	
		
			
				|  |  |  	label->setText(text);
 | 
	
		
			
				|  |  | -	if (label->textSize.y <= label->pos.h && slider)
 | 
	
		
			
				|  |  | +	if(label->textSize.y <= label->pos.h && slider)
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  |  		// slider is no longer needed
 | 
	
		
			
				|  |  |  		vstd::clear_pointer(slider);
 | 
	
		
			
				|  |  | -		label->pos.w = pos.w;
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	else if(slider)
 | 
	
		
			
				|  |  | +	{
 | 
	
		
			
				|  |  | +		// decrease width again if slider still used
 | 
	
		
			
				|  |  | +		label->pos.w = pos.w - 32;
 | 
	
		
			
				|  |  |  		label->setText(text);
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	else if (label->textSize.y > label->pos.h && !slider)
 | 
	
		
			
				|  |  | +	else if(label->textSize.y > label->pos.h)
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  |  		// create slider and update widget
 | 
	
		
			
				|  |  |  		label->pos.w = pos.w - 32;
 |