diff --git a/app/controllers/component-tree.js b/app/controllers/component-tree.js
index <HASH>..<HASH> 100644
--- a/app/controllers/component-tree.js
+++ b/app/controllers/component-tree.js
@@ -170,10 +170,19 @@ export default Controller.extend({
   scrollTreeToItem(objectId) {
     let selectedItemIndex = this.get('displayedList').findIndex(item => item.view.objectId === objectId);
 
-    if (selectedItemIndex) {
-      const averageItemHeight = 22;
+    if (!selectedItemIndex) {
+      return;
+    }
+
+    const averageItemHeight = 25;
+    const targetScrollTop = averageItemHeight * selectedItemIndex;
+    const componentTreeEl = document.querySelector('.js-component-tree');
+    const height = componentTreeEl.offsetHeight;
+
+    // Only scroll to item if not already in view
+    if (targetScrollTop < componentTreeEl.scrollTop || targetScrollTop > componentTreeEl.scrollTop + height) {
       schedule('afterRender', () => {
-        document.querySelector('.js-component-tree').scrollTop = averageItemHeight * selectedItemIndex;
+        componentTreeEl.scrollTop = targetScrollTop - (height / 2);
       });
     }
   },
Only scroll to an element when it's out of view (#<I>)

Avoid scrolling to visible elements and match the behavior of the Elements panel.