diff --git a/modules/juce_gui_basics/widgets/juce_TreeView.cpp b/modules/juce_gui_basics/widgets/juce_TreeView.cpp index e522e3ad00..e017ce97e5 100644 --- a/modules/juce_gui_basics/widgets/juce_TreeView.cpp +++ b/modules/juce_gui_basics/widgets/juce_TreeView.cpp @@ -413,7 +413,7 @@ class TreeView::TreeViewport : public Viewport public: TreeViewport() noexcept : lastX (-1) {} - void updateComponents (const bool triggerResize = false) + void updateComponents (const bool triggerResize) { TreeViewContentComponent* const tvc = getContentComp(); @@ -440,6 +440,14 @@ public: return static_cast (getViewedComponent()); } + bool keyPressed (const KeyPress& key) + { + TreeView* const tree = dynamic_cast (getParentComponent()); + + return (tree != nullptr && tree->keyPressed (key)) + || Viewport::keyPressed (key); + } + private: int lastX; @@ -461,7 +469,6 @@ TreeView::TreeView (const String& name) { addAndMakeVisible (viewport); viewport->setViewedComponent (new TreeViewContentComponent (*this)); - viewport->setWantsKeyboardFocus (false); setWantsKeyboardFocus (true); } @@ -742,8 +749,8 @@ void TreeView::scrollToKeepItemVisible (TreeViewItem* item) item = item->getDeepestOpenParentItem(); - int y = item->y; - int viewTop = viewport->getViewPositionY(); + const int y = item->y; + const int viewTop = viewport->getViewPositionY(); if (y < viewTop) { @@ -857,7 +864,7 @@ void TreeView::recalculateIfNeeded() if (rootItem != nullptr) rootItem->updatePositions (rootItemVisible ? 0 : -rootItem->itemHeight); - viewport->updateComponents(); + viewport->updateComponents (false); if (rootItem != nullptr) {