summaryrefslogtreecommitdiff
path: root/src/gui/kernel/qapplication_wayland.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/gui/kernel/qapplication_wayland.cpp')
-rw-r--r--src/gui/kernel/qapplication_wayland.cpp94
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);
-
}
/*****************************************************************************