Browse Source

Avoided TreeView consuming return key presses if the selected item can't be opened.

tags/2021-05-28
jules 12 years ago
parent
commit
aa408bd982
2 changed files with 12 additions and 4 deletions
  1. +11
    -3
      modules/juce_gui_basics/widgets/juce_TreeView.cpp
  2. +1
    -1
      modules/juce_gui_basics/widgets/juce_TreeView.h

+ 11
- 3
modules/juce_gui_basics/widgets/juce_TreeView.cpp View File

@@ -742,10 +742,18 @@ void TreeView::scrollToKeepItemVisible (TreeViewItem* item)
}
}
void TreeView::toggleOpenSelectedItem()
bool TreeView::toggleOpenSelectedItem()
{
if (TreeViewItem* const firstSelected = getSelectedItem (0))
firstSelected->setOpen (! firstSelected->isOpen());
{
if (firstSelected->mightContainSubItems())
{
firstSelected->setOpen (! firstSelected->isOpen());
return true;
}
}
return false;
}
void TreeView::moveOutOfSelectedItem()
@@ -822,7 +830,7 @@ bool TreeView::keyPressed (const KeyPress& key)
if (key == KeyPress::endKey) { moveSelectedRow (0x3fffffff); return true; }
if (key == KeyPress::pageUpKey) { moveByPages (-1); return true; }
if (key == KeyPress::pageDownKey) { moveByPages (1); return true; }
if (key == KeyPress::returnKey) { toggleOpenSelectedItem(); return true; }
if (key == KeyPress::returnKey) { return toggleOpenSelectedItem(); }
if (key == KeyPress::leftKey) { moveOutOfSelectedItem(); return true; }
if (key == KeyPress::rightKey) { moveIntoSelectedItem(); return true; }
}


+ 1
- 1
modules/juce_gui_basics/widgets/juce_TreeView.h View File

@@ -875,7 +875,7 @@ private:
void hideDragHighlight() noexcept;
void handleDrag (const StringArray&, const SourceDetails&);
void handleDrop (const StringArray&, const SourceDetails&);
void toggleOpenSelectedItem();
bool toggleOpenSelectedItem();
void moveOutOfSelectedItem();
void moveIntoSelectedItem();
void moveByPages (int numPages);


Loading…
Cancel
Save