Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/graphics/UIGraphicsTextPane.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/graphics/UIGraphicsTextPane.cpp	(revision 50845)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/graphics/UIGraphicsTextPane.cpp	(revision 50846)
@@ -30,4 +30,5 @@
     , m_iSpacing(10)
     , m_iMinimumTextColumnWidth(100)
+    , m_fMinimumSizeHintInvalidated(true)
     , m_iMinimumTextWidth(0)
     , m_iMinimumTextHeight(0)
@@ -63,11 +64,15 @@
     }
 
-    /* Update minimum text size-hint: */
+    /* Update minimum size-hint: */
     updateMinimumTextWidthHint();
     updateMinimumTextHeightHint();
+    updateGeometry();
 }
 
 void UIGraphicsTextPane::updateGeometry()
 {
+    /* Discard cached minimum size-hint: */
+    m_fMinimumSizeHintInvalidated = true;
+
     /* Call to base-class to notify layout if any: */
     QIGraphicsWidget::updateGeometry();
@@ -121,7 +126,4 @@
     /* Remember new value: */
     m_iMinimumTextWidth = iMinimumTextWidth;
-
-    /* Notify listeners: */
-    updateGeometry();
 }
 
@@ -198,26 +200,31 @@
     /* Remember new value: */
     m_iMinimumTextHeight = iMinimumTextHeight;
-
-    /* Notify listeners: */
+}
+
+QSizeF UIGraphicsTextPane::sizeHint(Qt::SizeHint which, const QSizeF &constraint /* = QSizeF() */) const
+{
+    /* For minimum size-hint: */
+    if (which == Qt::MinimumSize)
+    {
+        /* If minimum size-hint invalidated: */
+        if (m_fMinimumSizeHintInvalidated)
+        {
+            /* Recache minimum size-hint: */
+            m_minimumSizeHint = QSizeF(2 * m_iMargin + m_iMinimumTextWidth,
+                                       2 * m_iMargin + m_iMinimumTextHeight);
+            m_fMinimumSizeHintInvalidated = false;
+        }
+        /* Return cached minimum size-hint: */
+        return m_minimumSizeHint;
+    }
+    /* Call to base-class for other size-hints: */
+    return QIGraphicsWidget::sizeHint(which, constraint);
+}
+
+void UIGraphicsTextPane::resizeEvent(QGraphicsSceneResizeEvent*)
+{
+    /* Update minimum height-hint: */
+    updateMinimumTextHeightHint();
     updateGeometry();
-}
-
-QSizeF UIGraphicsTextPane::sizeHint(Qt::SizeHint which, const QSizeF &constraint /* = QSizeF() */) const
-{
-    /* Calculate minimum size-hint: */
-    if (which == Qt::MinimumSize)
-    {
-        int iWidth = 2 * m_iMargin + m_iMinimumTextWidth;
-        int iHeight = 2 * m_iMargin + m_iMinimumTextHeight;
-        return QSize(iWidth, iHeight);
-    }
-    /* Call to base-class: */
-    return QIGraphicsWidget::sizeHint(which, constraint);
-}
-
-void UIGraphicsTextPane::resizeEvent(QGraphicsSceneResizeEvent*)
-{
-    /* Update minimum text height-hint: */
-    updateMinimumTextHeightHint();
 }
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/widgets/graphics/UIGraphicsTextPane.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/widgets/graphics/UIGraphicsTextPane.h	(revision 50845)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/widgets/graphics/UIGraphicsTextPane.h	(revision 50846)
@@ -82,4 +82,8 @@
     const int m_iMinimumTextColumnWidth;
 
+    /** Minimum size-hint invalidation flag. */
+    mutable bool m_fMinimumSizeHintInvalidated;
+    /** Minimum size-hint cache. */
+    mutable QSizeF m_minimumSizeHint;
     /** Minimum text-width. */
     int m_iMinimumTextWidth;
