Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooser.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooser.cpp	(revision 42801)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooser.cpp	(revision 42802)
@@ -122,4 +122,5 @@
     connect(m_pChooserModel, SIGNAL(sigGroupSavingStarted()), this, SIGNAL(sigGroupSavingStarted()));
     connect(m_pChooserModel, SIGNAL(sigGroupSavingFinished()), this, SIGNAL(sigGroupSavingFinished()));
+    connect(m_pChooserModel, SIGNAL(sigFocusChanged(UIGChooserItem*)), m_pChooserView, SLOT(sltFocusChanged(UIGChooserItem*)));
 
     /* Chooser-view connections: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp	(revision 42801)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.cpp	(revision 42802)
@@ -350,4 +350,7 @@
             m_pFocusItem->update();
         }
+
+        /* Notify focus changed: */
+        emit sigFocusChanged(m_pFocusItem);
     }
 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h	(revision 42801)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserModel.h	(revision 42802)
@@ -61,4 +61,7 @@
     /* Notifier: Root-item resize stuff: */
     void sigRootItemResized(const QSizeF &size, int iMinimumWidth);
+
+    /* Notifier: Focus change: */
+    void sigFocusChanged(UIGChooserItem *pFocusItem);
 
     /* Notifier: Selection change: */
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserView.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserView.cpp	(revision 42801)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserView.cpp	(revision 42802)
@@ -23,4 +23,5 @@
 /* GUI includes: */
 #include "UIGChooserView.h"
+#include "UIGChooserItem.h"
 
 UIGChooserView::UIGChooserView(QWidget *pParent)
@@ -49,4 +50,16 @@
 }
 
+void UIGChooserView::sltFocusChanged(UIGChooserItem *pFocusItem)
+{
+    /* Make sure focus-item set: */
+    if (!pFocusItem)
+        return;
+
+    QSize viewSize = viewport()->size();
+    QRectF geo = pFocusItem->geometry();
+    geo &= QRectF(geo.topLeft(), viewSize);
+    ensureVisible(geo, 0, 0);
+}
+
 void UIGChooserView::resizeEvent(QResizeEvent*)
 {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserView.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserView.h	(revision 42801)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserView.h	(revision 42802)
@@ -23,4 +23,7 @@
 #include <QGraphicsView>
 
+/* Forward declarations: */
+class UIGChooserItem;
+
 /* Graphics selector view: */
 class UIGChooserView : public QGraphicsView
@@ -43,4 +46,7 @@
     void sltHandleRootItemResized(const QSizeF &size, int iMinimumWidth);
 
+    /* Handler: Focus item change: */
+    void sltFocusChanged(UIGChooserItem *pFocusItem);
+
 private:
 
