File indexing completed on 2024-05-12 05:32:36

0001 /*
0002     KWin - the KDE window manager
0003     This file is part of the KDE project.
0004 
0005     SPDX-FileCopyrightText: 2019 Roman Gilg <subdiff@gmail.com>
0006 
0007     SPDX-License-Identifier: GPL-2.0-or-later
0008 */
0009 #pragma once
0010 
0011 #include "effect/globals.h"
0012 
0013 #include <QObject>
0014 
0015 class QProcess;
0016 
0017 namespace KWin
0018 {
0019 class AbstractDropHandler;
0020 class Window;
0021 
0022 namespace Xwl
0023 {
0024 enum class DragEventReply {
0025     // event should be ignored by the filter
0026     Ignore,
0027     // event is filtered out
0028     Take,
0029     // event should be handled as a Wayland native one
0030     Wayland,
0031 };
0032 } // namespace Xwl
0033 
0034 class KWIN_EXPORT XwaylandInterface
0035 {
0036 public:
0037     virtual Xwl::DragEventReply dragMoveFilter(Window *target) = 0;
0038     virtual AbstractDropHandler *xwlDropHandler() = 0;
0039 
0040 protected:
0041     explicit XwaylandInterface() = default;
0042     virtual ~XwaylandInterface() = default;
0043 
0044 private:
0045     Q_DISABLE_COPY(XwaylandInterface)
0046 };
0047 
0048 } // namespace KWin