Ignore screen create events for other than window object type

Previously the screen create event was only handled for window.
With QNX 8.0 there seems to be also screen create events for display
and device. The property query returns ENOTSUP (Not supported) so we
simply ignore other than window create event.

Fixes: QTBUG-129213
Pick-to: 6.8
Change-Id: Ia7da693f06f6590d349595ecde6b303fab145bc0
Reviewed-by: James McDonnell <jmcdonnell@blackberry.com>
This commit is contained in:
Tuomas Vaarala 2024-09-27 09:44:38 +03:00
parent edacb741a9
commit 11d5792774

View File

@ -607,11 +607,35 @@ void QQnxScreenEventHandler::handleCloseEvent(screen_event_t event)
void QQnxScreenEventHandler::handleCreateEvent(screen_event_t event)
{
screen_window_t window = 0;
int object_type = -1;
Q_SCREEN_CHECKERROR(
screen_get_event_property_iv(event, SCREEN_PROPERTY_OBJECT_TYPE, &object_type),
"Failed to query object type for create event");
switch (object_type) {
// Other object types than window produces an unnessary warning, thus ignore
case SCREEN_OBJECT_TYPE_CONTEXT:
case SCREEN_OBJECT_TYPE_GROUP:
case SCREEN_OBJECT_TYPE_DISPLAY:
case SCREEN_OBJECT_TYPE_DEVICE:
case SCREEN_OBJECT_TYPE_PIXMAP:
case SCREEN_OBJECT_TYPE_SESSION:
case SCREEN_OBJECT_TYPE_STREAM:
break;
case SCREEN_OBJECT_TYPE_WINDOW:
{
Q_SCREEN_CHECKERROR(
screen_get_event_property_pv(event, SCREEN_PROPERTY_WINDOW, (void**)&window),
"Failed to query window property");
Q_EMIT newWindowCreated(window);
Q_EMIT newWindowCreated(window);
break;
}
default:
qCDebug(lcQpaScreenEvents) << "Ignore create event for object type: " << object_type;
break;
}
}
void QQnxScreenEventHandler::handleDisplayEvent(screen_event_t event)