Browse Source

Toolbar: Fix missing-items button when LookAndFeel changes after construction of toolbar

Previously, setting a new look and feel would create a new missing-items
button, but would not add it to the toolbar or set the onClick callback.
v6.1.6
reuk 3 years ago
parent
commit
6d404236e2
No known key found for this signature in database GPG Key ID: 9ADCD339CFC98A11
2 changed files with 13 additions and 4 deletions
  1. +12
    -4
      modules/juce_gui_basics/widgets/juce_Toolbar.cpp
  2. +1
    -0
      modules/juce_gui_basics/widgets/juce_Toolbar.h

+ 12
- 4
modules/juce_gui_basics/widgets/juce_Toolbar.cpp View File

@@ -243,10 +243,7 @@ private:
Toolbar::Toolbar()
{
lookAndFeelChanged();
addChildComponent (missingItemsButton.get());
missingItemsButton->setAlwaysOnTop (true);
missingItemsButton->onClick = [this] { showMissingItems(); };
initMissingItemButton();
}
Toolbar::~Toolbar()
@@ -534,6 +531,16 @@ void Toolbar::updateAllItemPositions (bool animate)
}
//==============================================================================
void Toolbar::initMissingItemButton()
{
if (missingItemsButton == nullptr)
return;
addChildComponent (*missingItemsButton);
missingItemsButton->setAlwaysOnTop (true);
missingItemsButton->onClick = [this] { showMissingItems(); };
}
void Toolbar::showMissingItems()
{
jassert (missingItemsButton->isShowing());
@@ -643,6 +650,7 @@ void Toolbar::itemDropped (const SourceDetails& dragSourceDetails)
void Toolbar::lookAndFeelChanged()
{
missingItemsButton.reset (getLookAndFeel().createToolbarMissingItemsButton (*this));
initMissingItemButton();
}
void Toolbar::mouseDown (const MouseEvent&) {}


+ 1
- 0
modules/juce_gui_basics/widgets/juce_Toolbar.h View File

@@ -323,6 +323,7 @@ private:
class CustomisationDialog;
std::unique_ptr<AccessibilityHandler> createAccessibilityHandler() override;
void initMissingItemButton();
void showMissingItems();
void addItemInternal (ToolbarItemFactory& factory, int itemId, int insertIndex);


Loading…
Cancel
Save