First the crash:
mouse enter Program received signal SIGSEGV, Segmentation fault. 0x00000000004bc722 in juce::WeakReference<juce::Component, juce::ReferenceCountedObject>::get() const () (gdb) bt #0 0x00000000004bc722 in juce::WeakReference<juce::Component, juce::ReferenceCountedObject>::get() const () #1 0x000000000046797e in juce::Component::BailOutChecker::shouldBailOut() const () #2 0x00000000004c48d7 in juce::Component::MouseListenerList::sendMouseEvent(juce::Component&, juce::Component::BailOutChecker&, void (juce::MouseListener::*)(juce::MouseEvent const&), juce::MouseEvent const&) () #3 0x000000000048197e in juce::Component::internalMouseEnter(juce::MouseInputSource, juce::Point<int>, juce::Time) ()
The "mouse enter" is from my own code, which illustrates that it's getting called.
So: I created a subclass of MouseListener:
class MyMouseListener : public MouseListener
And implemented all the virtual members. Inside the mouse enter listener I call into my code, which is the "mouse enter" you saw.
The initialization is after I create the Component, I do addMouseListener( mylistener, false); where 'mylistener' is a singleton pointer to a MyMouseListener.
My problem is I have no clue why JUCE is complaining here. The identical handling code was working fine when I subclassed the Component... so it's something to do with the listener...