File indexing completed on 2024-05-19 16:35:34
0001 /* 0002 SPDX-FileCopyrightText: 2022 David Redondo <kde@david-redondo.de> 0003 0004 SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0005 */ 0006 0007 #pragma once 0008 0009 #include "kwin_export.h" 0010 0011 #include <QObject> 0012 0013 #include <memory> 0014 0015 struct wl_resource; 0016 0017 namespace KWaylandServer 0018 { 0019 0020 class Display; 0021 class SeatInterface; 0022 class SurfaceInterface; 0023 class XWaylandKeyboardGrabV1InterfacePrivate; 0024 class XWaylandKeyboardGrabManagerV1InterfacePrivate; 0025 0026 class KWIN_EXPORT XWaylandKeyboardGrabManagerV1Interface : public QObject 0027 { 0028 Q_OBJECT 0029 public: 0030 explicit XWaylandKeyboardGrabManagerV1Interface(Display *display, QObject *parent = nullptr); 0031 ~XWaylandKeyboardGrabManagerV1Interface() override; 0032 bool hasGrab(SurfaceInterface *surface, SeatInterface *seat) const; 0033 0034 private: 0035 friend class XWaylandKeyboardGrabManagerV1InterfacePrivate; 0036 std::unique_ptr<XWaylandKeyboardGrabManagerV1InterfacePrivate> d; 0037 }; 0038 0039 class KWIN_EXPORT XWaylandKeyboardGrabV1Interface : public QObject 0040 { 0041 Q_OBJECT 0042 public: 0043 ~XWaylandKeyboardGrabV1Interface() override; 0044 0045 private: 0046 friend class XWaylandKeyboardGrabManagerV1InterfacePrivate; 0047 XWaylandKeyboardGrabV1Interface(wl_resource *resource); 0048 std::unique_ptr<XWaylandKeyboardGrabV1InterfacePrivate> d; 0049 }; 0050 0051 }