diff options
Diffstat (limited to 'src/gui/kernel/qapplication_wayland.cpp')
-rw-r--r-- | src/gui/kernel/qapplication_wayland.cpp | 94 |
1 files changed, 7 insertions, 87 deletions
diff --git a/src/gui/kernel/qapplication_wayland.cpp b/src/gui/kernel/qapplication_wayland.cpp index 517e87a1a1..5101d27fa9 100644 --- a/src/gui/kernel/qapplication_wayland.cpp +++ b/src/gui/kernel/qapplication_wayland.cpp @@ -74,7 +74,6 @@ #include "private/qwidget_p.h" #include "private/qbackingstore_p.h" -#include "private/qwindowsurface_wayland_p.h" #include "private/qfont_p.h" #include <unistd.h> @@ -118,76 +117,6 @@ void QApplicationPrivate::initializeWidgetPaletteHash() { } -static void -display_handle_device(void *data, - struct wl_compositor *compositor, - const char *device) -{ - struct QWaylandData *d = (struct QWaylandData *)data; - - d->device_name = strdup(device); -} - -static void -display_handle_acknowledge(void *data, - struct wl_compositor *compositor, - uint32_t key, uint32_t frame) -{ - struct QWaylandData *d = (struct QWaylandData *)data; - - return; -} - -static void -display_handle_frame(void *data, - struct wl_compositor *compositor, - uint32_t frame, uint32_t timestamp) -{ - struct QWaylandData *d = (struct QWaylandData *)data; - - return; -} - -static const struct wl_compositor_listener compositor_listener = { - display_handle_device, - display_handle_acknowledge, - display_handle_frame, -}; - -static void -display_handle_geometry(void *data, - struct wl_output *output, - int32_t width, int32_t height) -{ - struct QWaylandData *d = (struct QWaylandData *)data; - - d->x = 0; - d->y = 0; - d->width = width; - d->height = height; -} - -static const struct wl_output_listener output_listener = { - display_handle_geometry, -}; - -static void -display_handle_global(struct wl_display *display, struct wl_object *object, - void *data) -{ - struct QWaylandData *d = (struct QWaylandData *)data; - - if (wl_object_implements(object, "compositor", 1)) { - d->compositor = (struct wl_compositor *) object; - wl_compositor_add_listener(d->compositor, &compositor_listener, d); - } else if (wl_object_implements(object, "output", 1)) { - d->output = (struct wl_output *) object; - wl_output_add_listener(d->output, &output_listener, d); - } else if (wl_object_implements(object, "input_device", 1)) { - d->input_device =(struct wl_input_device *) object; - } -} - void qt_init(QApplicationPrivate *priv, int type) { PFNEGLGETTYPEDDISPLAYMESA get_typed_display_mesa; @@ -212,13 +141,11 @@ void qt_init(QApplicationPrivate *priv, int type) EGL_NONE }; - qWayland = new QWaylandData; - if (!qWayland) - qFatal("couldn't create Wayland connection, out of memory\n"); - if (!qt_is_gui_used) return; + // FIXME: share compositor connection across threads + get_typed_display_mesa = (PFNEGLGETTYPEDDISPLAYMESA)eglGetProcAddress("eglGetTypedDisplayMESA"); if (!get_typed_display_mesa) @@ -267,19 +194,13 @@ void qt_init(QApplicationPrivate *priv, int type) return; } - /* Set up listener so we'll catch all events. */ - if (!wl_display_add_global_listener(d, display_handle_global, qWayland)) { - close(fd); - wl_display_destroy(d); - qFatal("failed to add compositor listener\n"); - } - - /* Process connection events. */ - wl_display_iterate(d, WL_DISPLAY_READABLE); + qWayland = new QWaylandData; + if (!qWayland) + qFatal("couldn't create Wayland connection, out of memory\n"); qWayland->dri_fd = fd; - qWayland->display = d; - qWayland->dpy = dpy; + qWayland->wl_display = d; + qWayland->egl_display = dpy; qWayland->ctx = ctx; priv->inputContext = 0; @@ -306,7 +227,6 @@ void qt_init(QApplicationPrivate *priv, int type) } qApp->setObjectName(appName); - } /***************************************************************************** |