+ currentUnderlineThickness = fontMetrics.underlineThickness;
+
+ // Ensure underline will be at least a pixel high
+ if ( currentUnderlineThickness < ONE )
+ {
+ currentUnderlineThickness = ONE;
+ }
+ else
+ {
+ currentUnderlineThickness = FontMetricsRoundUp( currentUnderlineThickness );
+ }
+ }
+
+ // Clamp the underline position at the font descender and check for ( as EFL describes it ) a broken font
+ if ( currentUnderlinePosition > descender )
+ {
+ currentUnderlinePosition = descender;
+ }
+ if ( ZERO == currentUnderlinePosition )
+ {
+ // Move offset down by one ( EFL behavior )
+ currentUnderlinePosition = ONE;