private static void setVisualPadding( JComponent c, Insets visualPadding ) {
		Object oldPadding = c.getClientProperty( VISUAL_PADDING_PROPERTY );
		if( oldPadding == null || oldPadding instanceof FlatMigInsets ) {
			FlatMigInsets flatVisualPadding = (visualPadding != null)
				? new FlatMigInsets( scale2( visualPadding.top ), scale2( visualPadding.left ),
					scale2( visualPadding.bottom ), scale2( visualPadding.right ) )
				: ZERO;

			c.putClientProperty( VISUAL_PADDING_PROPERTY, flatVisualPadding );
		}
	}
Invokes the given function to retrieve the actual visual paddings and sets
the client property. Also adds property change listener to component and
re-invokes the function if one of the given properties have changed.
flatlaf-core/src/main/java/com/formdev/flatlaf/ui/MigLayoutVisualPadding.java