summaryrefslogtreecommitdiffstats
path: root/plugins/multimedia/symbian/videooutput/s60eglendpoint.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/multimedia/symbian/videooutput/s60eglendpoint.cpp')
-rw-r--r--plugins/multimedia/symbian/videooutput/s60eglendpoint.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/plugins/multimedia/symbian/videooutput/s60eglendpoint.cpp b/plugins/multimedia/symbian/videooutput/s60eglendpoint.cpp
index 7a5f010f53..63b796d38f 100644
--- a/plugins/multimedia/symbian/videooutput/s60eglendpoint.cpp
+++ b/plugins/multimedia/symbian/videooutput/s60eglendpoint.cpp
@@ -115,6 +115,14 @@ void S60EglEndpointEventHandler::DoCancel()
TRACE("S60EglEndpointEventHandler::DoCancel" << qtThisPtr());
m_parent->m_extensions->endpointCancelNotification(m_parent->m_display,
m_parent->m_endpoint);
+
+ if (iStatus == KRequestPending) {
+ // If EGL display gets destroyed before cancel then endpointCancelNotification
+ // will not cancel our request
+ TRACE("S60EglEndpointEventHandler::DoCancel - completing request locally" << qtThisPtr());
+ TRequestStatus *requestStatus = &iStatus;
+ User::RequestComplete(requestStatus, KErrCancel);
+ }
}
//-----------------------------------------------------------------------------