[BR] childrenChanged() not called when removing an invisible child from a component

When removing a child component from its parent, the parent’s childrenChanged() callback is not called if the child is not visible.

PIP to reproduce:

#pragma once

/* BEGIN_JUCE_PIP_METADATA
  name:             RemoveChildBug
  dependencies:     juce_core, juce_data_structures, juce_events, juce_graphics, juce_gui_basics
  exporters:        XCODE_MAC
  moduleFlags:      JUCE_STRICT_REFCOUNTEDPOINTER=1
  type:             Component
  mainClass:        MainComponent
 END_JUCE_PIP_METADATA */

class MainComponent  : public juce::Component
{
public:
    MainComponent()
    {
        addChildComponent (button);
        DBG ("Constructor: " + juce::String {getNumChildComponents()});

        removeChildComponent (&button);
        DBG ("Constructor: " + juce::String {getNumChildComponents()});

        setSize (600, 400);
    }

    void childrenChanged() override
    {
        DBG ("childrenChanged(): " + juce::String {getNumChildComponents()});
    }

private:
    juce::TextButton button;
};

Expected Output:

childrenChanged(): 1
Constructor: 1
childrenChanged(): 0
Constructor: 0

Actual Output:

childrenChanged(): 1
Constructor: 1
Constructor: 0

Seems to be caused by this line:

Also, this check will always be true for the same reason - sendParentEvents can only be true if the child is showing: