public void run() {
		int height = 0;
		
		// TODO fix the animation skipping a frame when mouse-overing
		while (animationTime < TIME_TRANSLATION_DOWN_FINISH && kill == false) {
			if (animationTime < TIME_TRANSLATION_UP_FINISH)
				height = Math.max(Math.round(targetHeight*animationTime/TIME_TRANSLATION_UP_FINISH), 1);
			else if (animationTime > TIME_TRANSLATION_DOWN_START)
				height = targetHeight-Math.max(Math.round(targetHeight*(animationTime-TIME_TRANSLATION_DOWN_START)/(TIME_TRANSLATION_DOWN_FINISH-TIME_TRANSLATION_DOWN_START)), 1);
			else
				height = targetHeight;
			
			setBounds(baseX, baseY-height, getWidth(), height);
			if (!isVisible()) setVisible(true);
			
			try {
				Thread.sleep(MILLISECOND_PRECISION);
			} catch (InterruptedException e) { /* NOP */ }
			
			if (!mouseHover || (mouseHover && animationTime < TIME_TRANSLATION_DOWN_START))
				animationTime += SECOND_PRECISION;
		}
		
		dispose();
		
		Toaster.useToaster(); // Make next toast. Not worth using listeners and stuff
	}