diff --git a/src/server/tablet_interface.cpp b/src/server/tablet_interface.cpp index b8be52d..4efaf76 100644 --- a/src/server/tablet_interface.cpp +++ b/src/server/tablet_interface.cpp @@ -34,8 +34,8 @@ static int s_version = 1; class TabletSeatInterface::Private : public QtWaylandServer::zwp_tablet_seat_v2 { public: - Private(Display* d) - : zwp_tablet_seat_v2(*d, s_version) + Private(wl_resource* r) + : zwp_tablet_seat_v2(r) {} void zwp_tablet_seat_v2_bind_resource(Resource *resource) override { @@ -53,9 +53,9 @@ public: // QVector m_pads; }; -TabletSeatInterface::TabletSeatInterface(Display* d, QObject* parent) +TabletSeatInterface::TabletSeatInterface(wl_resource* resource, QObject* parent) : QObject(parent) - , d(new Private(d)) + , d(new Private(resource)) {} TabletSeatInterface::~TabletSeatInterface() = default; @@ -90,12 +90,11 @@ public: Private(Display *display, TabletManagerInterface* q) : zwp_tablet_manager_v2(*display, s_version) , q(q) - , m_display(display) {} void zwp_tablet_manager_v2_get_tablet_seat(QtWaylandServer::zwp_tablet_manager_v2::Resource * resource, uint32_t tablet_seat, struct ::wl_resource * seat) override { - SeatInterface* seatIface = SeatInterface::get(seat); - TabletSeatInterface* tabletSeatIface = get(seatIface); + qCritical() << "fucking get tablet seat" << resource << tablet_seat << seat; + TabletSeatInterface* tabletSeatIface = get(resource->handle); tabletSeatIface->d->add(resource->client(), tablet_seat, qMin(wl_resource_get_version(resource->handle), s_version)); } @@ -103,18 +102,17 @@ public: // add(resource->client(), qMin(wl_resource_get_version(resource->handle), s_version)); } - TabletSeatInterface* get(SeatInterface* seat) + TabletSeatInterface* get(wl_resource* resource) { - auto& tabletSeat = m_seats[seat]; + auto& tabletSeat = m_seats[resource]; if (!tabletSeat) { - tabletSeat = new TabletSeatInterface(m_display, q); + tabletSeat = new TabletSeatInterface(resource, q); } return tabletSeat; } TabletManagerInterface* const q; - Display* const m_display; - QHash m_seats; + QHash m_seats; }; TabletManagerInterface::TabletManagerInterface(Display *display, QObject *parent) @@ -125,10 +123,10 @@ TabletManagerInterface::TabletManagerInterface(Display *display, QObject *parent TabletManagerInterface::~TabletManagerInterface() = default; -TabletSeatInterface* TabletManagerInterface::seat(SeatInterface* seat) -{ - return d->get(seat); -} +// TabletSeatInterface* TabletManagerInterface::seat(SeatInterface* seat) +// { +// return d->get(seat); +// } // // void TabletManagerInterface::cancel() diff --git a/src/server/tablet_interface.h b/src/server/tablet_interface.h index 5406c80..d5e859e 100644 --- a/src/server/tablet_interface.h +++ b/src/server/tablet_interface.h @@ -40,7 +40,7 @@ class KWAYLANDSERVER_EXPORT TabletManagerInterface : public QObject public: virtual ~TabletManagerInterface(); - TabletSeatInterface* seat(SeatInterface* seat); +// TabletSeatInterface* seat(SeatInterface* seat); private: friend class Display; @@ -183,7 +183,7 @@ public: private: friend class TabletManagerInterface; - explicit TabletSeatInterface(Display* display, QObject* parent); + explicit TabletSeatInterface(wl_resource* resource, QObject* parent); class Private; QScopedPointer d; };