From cdeba9c651ceb02b514a6814795fee584a192827 Mon Sep 17 00:00:00 2001 From: Thomas Clark Date: Fri, 19 Jun 2015 21:21:38 -0400 Subject: [PATCH] Check for valid pattern when focussing out pianoroll This prevents a segmentation fault when closing an empty piano roll, fixing issue #2050. --- src/gui/editors/PianoRoll.cpp | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/gui/editors/PianoRoll.cpp b/src/gui/editors/PianoRoll.cpp index 6e5301bfe..7537c3cff 100644 --- a/src/gui/editors/PianoRoll.cpp +++ b/src/gui/editors/PianoRoll.cpp @@ -3344,12 +3344,14 @@ void PianoRoll::wheelEvent(QWheelEvent * we ) void PianoRoll::focusOutEvent( QFocusEvent * ) { - for( int i = 0; i < NumKeys; ++i ) - { - m_pattern->instrumentTrack()->pianoModel()->midiEventProcessor()->processInEvent( MidiEvent( MidiNoteOff, -1, i, 0 ) ); - m_pattern->instrumentTrack()->pianoModel()->setKeyState( i, false ); + if( hasValidPattern() ) { + for( int i = 0; i < NumKeys; ++i ) + { + m_pattern->instrumentTrack()->pianoModel()->midiEventProcessor()->processInEvent( MidiEvent( MidiNoteOff, -1, i, 0 ) ); + m_pattern->instrumentTrack()->pianoModel()->setKeyState( i, false ); + } + update(); } - update(); }