/* KWin - the KDE window manager This file is part of the KDE project. SPDX-FileCopyrightText: 2014 Martin Gräßlin SPDX-License-Identifier: GPL-2.0-or-later */ #pragma once #include "main.h" namespace KWin { class KWinSelectionOwner; class ApplicationX11 : public Application { Q_OBJECT public: ApplicationX11(int &argc, char **argv); ~ApplicationX11() override; void setReplace(bool replace); std::unique_ptr createScreenEdge(ScreenEdges *parent) override; void createPlatformCursor(QObject *parent = nullptr) override; std::unique_ptr createOutline(Outline *outline) override; void createEffectsHandler(Compositor *compositor, Scene *scene) override; void startInteractiveWindowSelection(std::function callback, const QByteArray &cursorName = QByteArray()) override; void startInteractivePositionSelection(std::function callback) override; PlatformCursorImage cursorImage() const override; protected: void performStartup() override; private Q_SLOTS: void lostSelection(); private: void crashChecking(); void setupCrashHandler(); void notifyKSplash(); static void crashHandler(int signal); std::unique_ptr owner; bool m_replace; }; }