#include "waylandsurfaceitem.h"
#endif
-WaylandCompositor::WaylandCompositor(QWidget *topLevelWidget)
+WaylandCompositor::WaylandCompositor(QWidget *topLevelWidget, const char *socketName)
: m_compositor(0)
, m_toplevel_widget(topLevelWidget)
+ , m_socket_name(socketName)
{
+ QStringList arguments = QCoreApplication::instance()->arguments();
+
+ int socketArg = arguments.indexOf(QLatin1String("--wayland-socket-name"));
+ if (socketArg != -1 && socketArg + 1 < arguments.size())
+ m_socket_name = arguments.at(socketArg + 1).toLocal8Bit();
+
m_compositor = new Wayland::Compositor(this);
#ifdef QT_COMPOSITOR_DECLARATIVE
qmlRegisterType<WaylandSurfaceItem>("WaylandCompositor", 1, 0, "WaylandSurfaceItem");
{
}
+const char *WaylandCompositor::socketName() const
+{
+ if (m_socket_name.isEmpty())
+ return 0;
+ return m_socket_name.constData();
+}
class WaylandCompositor
{
public:
- WaylandCompositor(QWidget *topLevelWidget = 0);
+ WaylandCompositor(QWidget *topLevelWidget = 0, const char *socketName = 0);
virtual ~WaylandCompositor();
void frameFinished(WaylandSurface *surface = 0);
void setRetainedSelectionEnabled(bool enable);
virtual void retainedSelectionReceived(QMimeData *mimeData);
+ const char *socketName() const;
+
private:
static void retainedSelectionChanged(QMimeData *mimeData, void *param);
Wayland::Compositor *m_compositor;
QWidget *m_toplevel_widget;
-
+ QByteArray m_socket_name;
};
#endif // QTCOMP_H
wl_input_device_init(&m_input, base());
m_display->addGlobalObject(&m_input.object, &wl_input_device_interface, &input_device_interface, 0);
- if (wl_display_add_socket(m_display->handle(), 0)) {
+ if (wl_display_add_socket(m_display->handle(), qt_compositor->socketName())) {
fprintf(stderr, "Fatal: Failed to open server socket\n");
exit(EXIT_FAILURE);
}