public static void repaint( Component c, int x, int y, int width, int height ) {
		// repaint given component area
		//   Always invoke repaint() on given component, even if also invoked (below)
		//   on one of its ancestors, for the case that component overrides that method.
		//   Also RepaintManager "merges" the two repaints into one.
		c.repaint( x, y, width, height );

		if( RepaintManager.currentManager( c ) instanceof HiDPIRepaintManager )
			return;

		// if necessary, also repaint given area in first ancestor that is larger than component
		// to avoid clipping issue (see needsSpecialRepaint())
		if( needsSpecialRepaint( c, x, y, width, height ) ) {
			int x2 = x + c.getX();
			int y2 = y + c.getY();
			for( Component p = c.getParent(); p != null; p = p.getParent() ) {
				x2 += p.getX();
				y2 += p.getY();
				if( x2 + width < p.getWidth() && y2 + height < p.getHeight() ) {
					p.repaint( x2, y2, width, height );
					break;
				}
			}
		}
	}
Repaints the given component area.
<p>
Invokes {@link Component#repaint(int, int, int, int)} on the given component,
<p>
Use this method, instead of {@code Component.repaint(...)},
to fix a problem in Swing when using scale factors that end on .25 or .75
(e.g. 1.25, 1.75, 2.25, etc) and repainting single components, which may not
repaint right and/or bottom 1px edge of component.
<p>
The problem may occur under following conditions:
<ul>
  <li>using Java 9 or later
  <li>system scale factor is 125%, 175%, 225%, ...
      (Windows only; Java on macOS and Linux does not support fractional scale factors)
  <li>repaint whole component or right/bottom area of component
  <li>component is opaque; or component is contained in a opaque container
      that has same right/bottom bounds as component
  <li>component has bounds that Java/Swing scales different when repainting components
</ul>

@since 3.5
flatlaf-core/src/main/java/com/formdev/flatlaf/util/HiDPIUtils.java