             }
 
             // button viewHeight may be smaller than the labelDisplay textHeight
-            labelHeight = Math.min(viewHeight, textHeight);
+            labelHeight = Math.min(viewHeight - (labelDisplay.measuredTextSize.y - textHeight), textHeight);
             labelX += ((viewWidth - labelWidth - iconWidth -
                 horizontalGap - layoutPaddingLeft - layoutPaddingRight) / 2) + layoutPaddingLeft;
 


            iconY = ((viewHeight - iconHeight - layoutPaddingTop - layoutPaddingBottom) / 2) + layoutPaddingTop;

            // vertial center labelDisplay based on ascent
            // text "height" = min(measuredTextSize.y, viewHeight) - descent + gutter
            labelY = ((viewHeight - labelHeight + textDescent - StyleableTextField.TEXT_HEIGHT_PADDING) / 2);
        }
        else
        {

        }

        labelX = Math.max(0, Math.round(labelX));
		// text looks better a little high as opposed to low, so we use floor instead of round
        labelY = Math.max(0, Math.floor(labelY)); 

        labelDisplay.commitStyles();
        setElementSize(labelDisplay, labelWidth, labelHeight);
