Warning, file /plasma/kwin/src/layershellv1window.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 SPDX-FileCopyrightText: 2020 Vlad Zahorodnii <vlad.zahorodnii@kde.org> 0003 0004 SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 0007 #pragma once 0008 0009 #include "waylandwindow.h" 0010 0011 namespace KWaylandServer 0012 { 0013 class LayerSurfaceV1Interface; 0014 } 0015 0016 namespace KWin 0017 { 0018 0019 class Output; 0020 class LayerShellV1Integration; 0021 0022 class LayerShellV1Window : public WaylandWindow 0023 { 0024 Q_OBJECT 0025 0026 public: 0027 explicit LayerShellV1Window(KWaylandServer::LayerSurfaceV1Interface *shellSurface, 0028 Output *output, 0029 LayerShellV1Integration *integration); 0030 0031 KWaylandServer::LayerSurfaceV1Interface *shellSurface() const; 0032 Output *desiredOutput() const; 0033 0034 NET::WindowType windowType(bool direct = false, int supported_types = 0) const override; 0035 bool isPlaceable() const override; 0036 bool isCloseable() const override; 0037 bool isMovable() const override; 0038 bool isMovableAcrossScreens() const override; 0039 bool isResizable() const override; 0040 bool takeFocus() override; 0041 bool wantsInput() const override; 0042 StrutRect strutRect(StrutArea area) const override; 0043 bool hasStrut() const override; 0044 void destroyWindow() override; 0045 void closeWindow() override; 0046 void setVirtualKeyboardGeometry(const QRectF &geo) override; 0047 0048 protected: 0049 Layer belongsToLayer() const override; 0050 bool acceptsFocus() const override; 0051 void moveResizeInternal(const QRectF &rect, MoveResizeMode mode) override; 0052 0053 private: 0054 void handleSizeChanged(); 0055 void handleUnmapped(); 0056 void handleCommitted(); 0057 void handleAcceptsFocusChanged(); 0058 void handleOutputEnabledChanged(); 0059 void handleOutputDestroyed(); 0060 void scheduleRearrange(); 0061 0062 Output *m_desiredOutput; 0063 LayerShellV1Integration *m_integration; 0064 KWaylandServer::LayerSurfaceV1Interface *m_shellSurface; 0065 NET::WindowType m_windowType; 0066 }; 0067 0068 } // namespace KWin