From 6587f4882ab1c9a2a383d76f2a4fbeffcbd2e1c3 Mon Sep 17 00:00:00 2001 From: Niels Martin Hansen Date: Fri, 21 Sep 2007 21:24:32 +0000 Subject: [PATCH] Fix crash when playback cursor leaves the visible part of the audio display on wxMac. Originally committed to SVN as r1572. --- aegisub/audio_display.cpp | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/aegisub/audio_display.cpp b/aegisub/audio_display.cpp index 7aa0e7077..36f32d4d4 100644 --- a/aegisub/audio_display.cpp +++ b/aegisub/audio_display.cpp @@ -1956,17 +1956,19 @@ void AudioDisplay::OnUpdateTimer(wxTimerEvent &event) { // Draw cursor wxMemoryDC src; curpos = GetXAtSample(curPos); - dc.SetPen(wxPen(Options.AsColour(_T("Audio Play cursor")))); - src.SelectObject(*origImage); - if (fullDraw) { - //dc.Blit(0,0,w,h,&src,0,0); - dc.DrawLine(curpos,0,curpos,h); - //dc.Blit(0,0,curpos-10,h,&src,0,0); - //dc.Blit(curpos+10,0,w-curpos-10,h,&src,curpos+10,0); - } - else { - dc.Blit(oldCurPos,0,1,h,&src,oldCurPos,0); - dc.DrawLine(curpos,0,curpos,h); + if (curpos >= 0 && curpos < GetClientSize().GetWidth()) { + dc.SetPen(wxPen(Options.AsColour(_T("Audio Play cursor")))); + src.SelectObject(*origImage); + if (fullDraw) { + //dc.Blit(0,0,w,h,&src,0,0); + dc.DrawLine(curpos,0,curpos,h); + //dc.Blit(0,0,curpos-10,h,&src,0,0); + //dc.Blit(curpos+10,0,w-curpos-10,h,&src,curpos+10,0); + } + else { + dc.Blit(oldCurPos,0,1,h,&src,oldCurPos,0); + dc.DrawLine(curpos,0,curpos,h); + } } } else {