From: Sean Harmer Date: Thu, 26 Apr 2012 08:49:27 +0000 (+0100) Subject: Use non-blocking reads on virtual keyboard pps device. X-Git-Tag: 071012110112~1379 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=5c882dbb8955e3bcbd77027aae379aca50e9dfaa;p=profile%2Fivi%2Fqtbase.git Use non-blocking reads on virtual keyboard pps device. Change-Id: Iad350c948049128f3014a6ad6536ac9dc2ee86d5 Reviewed-by: Kevin Krammer Reviewed-by: Giuseppe D'Angelo --- diff --git a/src/plugins/platforms/qnx/qqnxvirtualkeyboard.cpp b/src/plugins/platforms/qnx/qqnxvirtualkeyboard.cpp index 9c336ba..685e5f0 100644 --- a/src/plugins/platforms/qnx/qqnxvirtualkeyboard.cpp +++ b/src/plugins/platforms/qnx/qqnxvirtualkeyboard.cpp @@ -58,7 +58,7 @@ QT_BEGIN_NAMESPACE -const char *QQnxVirtualKeyboard::ms_PPSPath = "/pps/services/input/control?wait"; +const char *QQnxVirtualKeyboard::ms_PPSPath = "/pps/services/input/control"; const size_t QQnxVirtualKeyboard::ms_bufferSize = 2048; // Huge hack for keyboard shadow (see QNX PR 88400). Should be removed ASAP. @@ -181,6 +181,11 @@ void QQnxVirtualKeyboard::ppsDataReady() return; } + // We sometimes get spurious read notifications when no data is available. + // Bail out early in this case + if (nread == 0) + return; + // nread is the real space necessary, not the amount read. if (static_cast(nread) > ms_bufferSize - 1) { qCritical("QQnxVirtualKeyboard: Keyboard buffer size too short; need %u.", nread + 1);