Index: /trunk/src/VBox/Frontends/VirtualBox/include/VBoxSnapshotDetailsDlg.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/include/VBoxSnapshotDetailsDlg.h	(revision 24736)
+++ /trunk/src/VBox/Frontends/VirtualBox/include/VBoxSnapshotDetailsDlg.h	(revision 24737)
@@ -59,4 +59,5 @@
 
     QPixmap mThumbnail;
+    QPixmap mScreenshot;
 };
 
Index: /trunk/src/VBox/Frontends/VirtualBox/src/VBoxSnapshotDetailsDlg.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/VBoxSnapshotDetailsDlg.cpp	(revision 24736)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/VBoxSnapshotDetailsDlg.cpp	(revision 24737)
@@ -69,6 +69,9 @@
     /* Get thumbnail if present */
     ULONG width = 0, height = 0;
-    QVector <BYTE> data = machine.ReadSavedThumbnailToArray (true, width, height);
-    mThumbnail = data.size() != 0 ? QPixmap::fromImage (QImage (data.data(), width, height, QImage::Format_RGB32).copy()) : QPixmap();
+    QVector <BYTE> thumbData = machine.ReadSavedThumbnailToArray (true, width, height);
+    mThumbnail = thumbData.size() != 0 ? QPixmap::fromImage (QImage (thumbData.data(), width, height, QImage::Format_RGB32).copy()) : QPixmap();
+    QVector <BYTE> screenData = machine.ReadSavedScreenshotPNGToArray (width, height);
+    mScreenshot = screenData.size() != 0 ? QPixmap::fromImage (QImage::fromData (screenData.data(), screenData.size(), "PNG")) : QPixmap();
+
     QGridLayout *lt = qobject_cast <QGridLayout*> (layout());
     Assert (lt);
@@ -118,4 +121,6 @@
     setWindowTitle (tr ("Details of %1 (%2)").arg (mSnapshot.GetName()).arg (machine.GetName()));
 
+    mLbThumbnail->setToolTip (mScreenshot.isNull() ? QString() : tr ("Click to enlarge the screenshot."));
+
     mTeDetails->setText (vboxGlobal().detailsReport (machine, false /* with links? */));
 }
@@ -124,14 +129,7 @@
 {
     Assert (aObject == mLbThumbnail);
-    if (aEvent->type() == QEvent::MouseButtonPress)
-    {
-        CMachine machine = mSnapshot.GetMachine();
-
-        ULONG width = 0, height = 0;
-        QVector <BYTE> data = machine.ReadSavedScreenshotPNGToArray (width, height);
-        Assert (data.size());
-        QPixmap pixmap = QPixmap::fromImage (QImage::fromData (data.data(), data.size(), "PNG"));
-
-        VBoxScreenshotViewer *viewer = new VBoxScreenshotViewer (this, pixmap, machine.GetName(), mSnapshot.GetName());
+    if (aEvent->type() == QEvent::MouseButtonPress && !mScreenshot.isNull())
+    {
+        VBoxScreenshotViewer *viewer = new VBoxScreenshotViewer (this, mScreenshot, mSnapshot.GetMachine().GetName(), mSnapshot.GetName());
         viewer->show();
     }
@@ -175,6 +173,7 @@
     layout->addWidget (mArea);
 
+    double aspectRatio = (double) aScreenshot.height() / aScreenshot.width();
     QSize maxSize = aScreenshot.size() + QSize (mArea->frameWidth() * 2, mArea->frameWidth() * 2);
-    QSize initSize = QSize (640, 480).boundedTo (maxSize);
+    QSize initSize = QSize (640, 640 * aspectRatio).boundedTo (maxSize);
 
     setMaximumSize (maxSize);
Index: /trunk/src/VBox/Frontends/VirtualBox/ui/VBoxSnapshotDetailsDlg.ui
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/ui/VBoxSnapshotDetailsDlg.ui	(revision 24736)
+++ /trunk/src/VBox/Frontends/VirtualBox/ui/VBoxSnapshotDetailsDlg.ui	(revision 24737)
@@ -62,7 +62,4 @@
       </sizepolicy>
      </property>
-     <property name="toolTip">
-      <string>Click to enlarge the screenshot.</string>
-     </property>
      <property name="frameShape">
       <enum>QFrame::Panel</enum>
