From 4b643275ed279139be05f0aca13400d3f179caa0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Samuel=20R=C3=B8dal?= Date: Mon, 27 Feb 2012 15:43:35 +0100 Subject: [PATCH] Get rid of some code in wayland plugin. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit We can use the convenience API that has been added to wayland instead. Change-Id: I9516256a14f62593b3c78064a0f6288bb496c583 Reviewed-by: Jørgen Lind --- src/plugins/platforms/wayland/qwaylanddisplay.cpp | 40 +++++------------------ src/plugins/platforms/wayland/qwaylanddisplay.h | 7 ---- 2 files changed, 8 insertions(+), 39 deletions(-) diff --git a/src/plugins/platforms/wayland/qwaylanddisplay.cpp b/src/plugins/platforms/wayland/qwaylanddisplay.cpp index e52e9dd..168f97e 100644 --- a/src/plugins/platforms/wayland/qwaylanddisplay.cpp +++ b/src/plugins/platforms/wayland/qwaylanddisplay.cpp @@ -106,6 +106,11 @@ void QWaylandDisplay::setLastKeyboardFocusInputDevice(QWaylandInputDevice *devic static QWaylandDisplay *display = 0; +static int dummyUpdate(uint32_t, void *) +{ + return 0; +} + QWaylandDisplay::QWaylandDisplay(void) : mLastKeyboardFocusInputDevice(0) , mDndSelectionHandler(0) @@ -125,7 +130,7 @@ QWaylandDisplay::QWaylandDisplay(void) wl_display_add_global_listener(mDisplay, QWaylandDisplay::displayHandleGlobal, this); - mFd = wl_display_get_fd(mDisplay, sourceUpdate, this); + mFd = wl_display_get_fd(mDisplay, dummyUpdate, 0); #ifdef QTWAYLAND_EXPERIMENTAL_THREAD_SUPPORT mWritableNotificationFd = wl_display_get_write_notification_fd(mDisplay); @@ -158,7 +163,6 @@ QWaylandDisplay::QWaylandDisplay(void) QWaylandDisplay::~QWaylandDisplay(void) { - close(mFd); #ifdef QT_WAYLAND_GL_SUPPORT delete mEglIntegration; #endif @@ -173,8 +177,7 @@ void QWaylandDisplay::createNewScreen(struct wl_output *output, QRect geometry) void QWaylandDisplay::flushRequests() { - if (mSocketMask & WL_DISPLAY_WRITABLE) - wl_display_iterate(mDisplay, WL_DISPLAY_WRITABLE); + wl_display_flush(mDisplay); } void QWaylandDisplay::readEvents() @@ -207,14 +210,6 @@ void QWaylandDisplay::blockingReadEvents() wl_display_iterate(mDisplay, WL_DISPLAY_READABLE); } -int QWaylandDisplay::sourceUpdate(uint32_t mask, void *data) -{ - QWaylandDisplay *waylandDisplay = static_cast(data); - waylandDisplay->mSocketMask = mask; - - return 0; -} - QWaylandScreen *QWaylandDisplay::screenForOutput(struct wl_output *output) const { for (int i = 0; i < mScreens.size(); ++i) { @@ -317,27 +312,8 @@ uint32_t QWaylandDisplay::currentTimeMillisec() return 0; } -void QWaylandDisplay::force_roundtrip_sync_callback(void *data, struct wl_callback *wl_callback, uint32_t time) -{ - Q_UNUSED(time); - - int *round_trip = (int *)data; - *round_trip = true; - wl_callback_destroy(wl_callback); -} - -const struct wl_callback_listener QWaylandDisplay::force_roundtrip_sync_callback_listener = { - QWaylandDisplay::force_roundtrip_sync_callback -}; - void QWaylandDisplay::forceRoundTrip() { - int round_trip = false; - wl_callback *sync_callback = wl_display_sync(mDisplay); - wl_callback_add_listener(sync_callback,&force_roundtrip_sync_callback_listener,&round_trip); - flushRequests(); - while (!round_trip) { - readEvents(); - } + wl_display_roundtrip(mDisplay); } diff --git a/src/plugins/platforms/wayland/qwaylanddisplay.h b/src/plugins/platforms/wayland/qwaylanddisplay.h index e0773b8..ed9cc55 100644 --- a/src/plugins/platforms/wayland/qwaylanddisplay.h +++ b/src/plugins/platforms/wayland/qwaylanddisplay.h @@ -138,11 +138,7 @@ private: int mWritableNotificationFd; bool mScreensInitialized; - uint32_t mSocketMask; - - static const struct wl_output_listener outputListener; - static int sourceUpdate(uint32_t mask, void *data); static void displayHandleGlobal(struct wl_display *display, uint32_t id, const char *interface, @@ -173,9 +169,6 @@ private: uint32_t time, uint32_t edges, struct wl_surface *surface, int32_t width, int32_t height); - - static void force_roundtrip_sync_callback(void *data, struct wl_callback *wl_callback, uint32_t time); - static const struct wl_callback_listener force_roundtrip_sync_callback_listener; }; #endif // QWAYLANDDISPLAY_H -- 2.7.4