diff --git a/src/server/pointer_interface.cpp b/src/server/pointer_interface.cpp --- a/src/server/pointer_interface.cpp +++ b/src/server/pointer_interface.cpp @@ -18,6 +18,7 @@ License along with this library. If not, see . *********************************************************************/ #include "pointer_interface.h" +#include "pointer_interface_p.h" #include "resource_p.h" #include "seat_interface.h" #include "display.h" @@ -32,34 +33,6 @@ namespace Server { -class PointerInterface::Private : public Resource::Private -{ -public: - Private(SeatInterface *parent, wl_resource *parentResource, PointerInterface *q); - - SeatInterface *seat; - SurfaceInterface *focusedSurface = nullptr; - QPointer focusedChildSurface; - QMetaObject::Connection destroyConnection; - Cursor *cursor = nullptr; - - void sendLeave(SurfaceInterface *surface, quint32 serial); - void sendEnter(SurfaceInterface *surface, const QPointF &parentSurfacePosition, quint32 serial); - -private: - PointerInterface *q_func() { - return reinterpret_cast(q); - } - void setCursor(quint32 serial, SurfaceInterface *surface, const QPoint &hotspot); - // interface - static void setCursorCallback(wl_client *client, wl_resource *resource, uint32_t serial, - wl_resource *surface, int32_t hotspot_x, int32_t hotspot_y); - // since version 3 - static void releaseCallback(wl_client *client, wl_resource *resource); - - static const struct wl_pointer_interface s_interface; -}; - class Cursor::Private { public: diff --git a/src/server/pointer_interface_p.h b/src/server/pointer_interface_p.h new file mode 100644 --- /dev/null +++ b/src/server/pointer_interface_p.h @@ -0,0 +1,63 @@ +/******************************************************************** +Copyright 2016 Martin Gräßlin + +This library is free software; you can redistribute it and/or +modify it under the terms of the GNU Lesser General Public +License as published by the Free Software Foundation; either +version 2.1 of the License, or (at your option) version 3, or any +later version accepted by the membership of KDE e.V. (or its +successor approved by the membership of KDE e.V.), which shall +act as a proxy defined in Section 6 of version 3 of the license. + +This library is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +Lesser General Public License for more details. + +You should have received a copy of the GNU Lesser General Public +License along with this library. If not, see . +*********************************************************************/ +#ifndef WAYLAND_SERVER_POINTER_INTERFACE_P_H +#define WAYLAND_SERVER_POINTER_INTERFACE_P_H +#include "pointer_interface.h" +#include "resource_p.h" + +#include + +namespace KWayland +{ +namespace Server +{ + +class PointerInterface::Private : public Resource::Private +{ +public: + Private(SeatInterface *parent, wl_resource *parentResource, PointerInterface *q); + + SeatInterface *seat; + SurfaceInterface *focusedSurface = nullptr; + QPointer focusedChildSurface; + QMetaObject::Connection destroyConnection; + Cursor *cursor = nullptr; + + void sendLeave(SurfaceInterface *surface, quint32 serial); + void sendEnter(SurfaceInterface *surface, const QPointF &parentSurfacePosition, quint32 serial); + +private: + PointerInterface *q_func() { + return reinterpret_cast(q); + } + void setCursor(quint32 serial, SurfaceInterface *surface, const QPoint &hotspot); + // interface + static void setCursorCallback(wl_client *client, wl_resource *resource, uint32_t serial, + wl_resource *surface, int32_t hotspot_x, int32_t hotspot_y); + // since version 3 + static void releaseCallback(wl_client *client, wl_resource *resource); + + static const struct wl_pointer_interface s_interface; +}; + +} +} + +#endif