From 6c9ba0eb17e28719c50eef00c69f812aa2deba0a Mon Sep 17 00:00:00 2001
From: J-P Nurmi <jpnurmi@theqtcompany.com>
Date: Sun, 9 Nov 2014 13:12:21 +0100
Subject: [PATCH] Android/SwitchStyle: use TextMetrics instead of FontMetrics

Ensures that the thumb text width is correctly calculated regardless
of QML's arbitrary binding evaluation order.

Change-Id: I71526db963fec6d54ad717f46382537591268e37
Reviewed-by: Mitch Curtis <mitch.curtis@digia.com>
Reviewed-by: Caroline Chao <caroline.chao@theqtcompany.com>
---
 src/controls/Styles/Android/SwitchStyle.qml | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/controls/Styles/Android/SwitchStyle.qml b/src/controls/Styles/Android/SwitchStyle.qml
index 4c36c918e..8401d3535 100644
--- a/src/controls/Styles/Android/SwitchStyle.qml
+++ b/src/controls/Styles/Android/SwitchStyle.qml
@@ -81,16 +81,22 @@ SwitchStyle {
 
                 x: control.checked ? max : min
 
-                FontMetrics {
-                    id: metrics
+                TextMetrics {
+                    id: onMetrics
                     font: label.font
+                    text: panel.styleDef.Switch_textOn
                 }
 
-                readonly property real maxTextWidth: Math.max(metrics.boundingRect(panel.styleDef.Switch_textOn).width,
-                                                              metrics.boundingRect(panel.styleDef.Switch_textOff).width)
+                TextMetrics {
+                    id: offMetrics
+                    font: label.font
+                    text: panel.styleDef.Switch_textOff
+                }
+
+                readonly property real maxTextWidth: Math.max(onMetrics.width, offMetrics.width)
 
                 implicitWidth: Math.max(loader.implicitWidth, maxTextWidth + 2 * panel.styleDef.Switch_thumbTextPadding)
-                implicitHeight: Math.max(loader.implicitHeight, metrics.height)
+                implicitHeight: Math.max(loader.implicitHeight, onMetrics.height, offMetrics.height)
 
                 anchors.top: parent.top
                 anchors.bottom: parent.bottom
-- 
GitLab