, mBuffer(0)
, mWaitingForFrameSync(false)
, mFrameCallback(0)
+ , mSentInitialResize(false)
{
static WId id = 1;
mWindowId = id++;
{
if (visible) {
+ if (!mSentInitialResize) {
+ QWindowSystemInterface::handleSynchronousGeometryChange(window(), geometry());
+ mSentInitialResize = true;
+ }
+ QWindowSystemInterface::handleSynchronousExposeEvent(window(), QRect(QPoint(), geometry().size()));
if (mBuffer) {
wl_surface_attach(mSurface, mBuffer->buffer(),0,0);
- QWindowSystemInterface::handleSynchronousExposeEvent(window(), QRect(QPoint(), geometry().size()));
}
} else {
+ QWindowSystemInterface::handleSynchronousExposeEvent(window(), QRect(QPoint(), geometry().size()));
wl_surface_attach(mSurface, 0,0,0);
}
}
struct wl_callback *mFrameCallback;
QWaitCondition mFrameSyncWait;
+ bool mSentInitialResize;
+
private:
static const wl_callback_listener callbackListener;
static void frameCallback(void *data, struct wl_callback *wl_callback, uint32_t time);