From 5c882dbb8955e3bcbd77027aae379aca50e9dfaa Mon Sep 17 00:00:00 2001 From: Sean Harmer Date: Thu, 26 Apr 2012 09:49:27 +0100 Subject: Use non-blocking reads on virtual keyboard pps device. Change-Id: Iad350c948049128f3014a6ad6536ac9dc2ee86d5 Reviewed-by: Kevin Krammer Reviewed-by: Giuseppe D'Angelo --- src/plugins/platforms/qnx/qqnxvirtualkeyboard.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'src/plugins') diff --git a/src/plugins/platforms/qnx/qqnxvirtualkeyboard.cpp b/src/plugins/platforms/qnx/qqnxvirtualkeyboard.cpp index 9c336baeb9..685e5f0f0b 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); -- cgit v1.2.3