summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/qnx/qqnxwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/qnx/qqnxwindow.cpp')
-rw-r--r--src/plugins/platforms/qnx/qqnxwindow.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/plugins/platforms/qnx/qqnxwindow.cpp b/src/plugins/platforms/qnx/qqnxwindow.cpp
index 2cee666e23..ab9c94772b 100644
--- a/src/plugins/platforms/qnx/qqnxwindow.cpp
+++ b/src/plugins/platforms/qnx/qqnxwindow.cpp
@@ -335,7 +335,11 @@ void QQnxWindow::setBufferSize(const QSize &size)
// Set window buffer size
errno = 0;
- int val[2] = { size.width(), size.height() };
+
+ // libscreen fails when creating empty buffers
+ const QSize nonEmptySize = size.isEmpty() ? QSize(1, 1) : size;
+
+ int val[2] = { nonEmptySize.width(), nonEmptySize.height() };
int result = screen_set_window_property_iv(m_window, SCREEN_PROPERTY_BUFFER_SIZE, val);
if (result != 0) {
qFatal("QQnxWindow: failed to set window buffer size, errno=%d", errno);
@@ -362,6 +366,7 @@ void QQnxWindow::setBufferSize(const QSize &size)
errno = 0;
result = screen_create_window_buffers(m_window, MAX_BUFFER_COUNT);
if (result != 0) {
+ qWarning() << "QQnxWindow: Buffer size was" << size;
qFatal("QQnxWindow: failed to create window buffers, errno=%d", errno);
}
@@ -380,7 +385,7 @@ void QQnxWindow::setBufferSize(const QSize &size)
}
// Cache new buffer size
- m_bufferSize = size;
+ m_bufferSize = nonEmptySize;
// Buffers were destroyed; reacquire them
m_currentBufferIndex = -1;