KWin
Loading...
Searching...
No Matches
internalwindow.h
Go to the documentation of this file.
1/*
2 KWin - the KDE window manager
3 This file is part of the KDE project.
4
5 SPDX-FileCopyrightText: 2019 Martin Flöser <mgraesslin@kde.org>
6 SPDX-FileCopyrightText: 2019 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
7
8 SPDX-License-Identifier: GPL-2.0-or-later
9*/
10#pragma once
11
12#include "core/graphicsbuffer.h"
13#include "window.h"
14
15namespace KWin
16{
17
24
25class KWIN_EXPORT InternalWindow : public Window
26{
27 Q_OBJECT
28
29public:
30 explicit InternalWindow(QWindow *handle);
31 ~InternalWindow() override;
32
33 bool eventFilter(QObject *watched, QEvent *event) override;
34
35 QString captionNormal() const override;
36 QString captionSuffix() const override;
37 QSizeF minSize() const override;
38 QSizeF maxSize() const override;
39 NET::WindowType windowType() const override;
40 void killWindow() override;
41 bool isClient() const override;
42 bool isPopupWindow() const override;
43 QString windowRole() const override;
44 void closeWindow() override;
45 bool isCloseable() const override;
46 bool isMovable() const override;
47 bool isMovableAcrossScreens() const override;
48 bool isResizable() const override;
49 bool isPlaceable() const override;
50 bool noBorder() const override;
51 bool userCanSetNoBorder() const override;
52 bool wantsInput() const override;
53 bool isInternal() const override;
54 bool isLockScreen() const override;
55 bool isOutline() const override;
56 QRectF resizeWithChecks(const QRectF &geometry, const QSizeF &size) override;
57 Window *findModal(bool allow_itself = false) override;
58 bool takeFocus() override;
59 void setNoBorder(bool set) override;
60 void invalidateDecoration() override;
61 void destroyWindow() override;
62 bool hasPopupGrab() const override;
63 void popupDone() override;
64 bool hitTest(const QPointF &point) const override;
65 void pointerEnterEvent(const QPointF &globalPos) override;
66 void pointerLeaveEvent() override;
67
68 GraphicsBuffer *graphicsBuffer() const;
69 GraphicsBufferOrigin graphicsBufferOrigin() const;
70
71 void present(const InternalWindowFrame &frame);
72 qreal bufferScale() const;
73 QWindow *handle() const;
74
75protected:
76 bool acceptsFocus() const override;
77 bool belongsToSameApplication(const Window *other, SameApplicationChecks checks) const override;
78 void doInteractiveResizeSync(const QRectF &rect) override;
79 void updateCaption() override;
80 void moveResizeInternal(const QRectF &rect, MoveResizeMode mode) override;
81 std::unique_ptr<WindowItem> createItem(Scene *scene) override;
82
83private:
84 void requestGeometry(const QRectF &rect);
85 void commitGeometry(const QRectF &rect);
86 void setCaption(const QString &caption);
87 void markAsMapped();
88 void syncGeometryToInternalWindow();
89 void updateInternalWindowGeometry();
90 void updateDecoration(bool check_workspace_pos, bool force = false);
91 void createDecoration(const QRectF &oldGeometry);
92 void destroyDecoration();
93
94 QWindow *m_handle = nullptr;
95 QString m_captionNormal;
96 QString m_captionSuffix;
97 Qt::WindowFlags m_internalWindowFlags = Qt::WindowFlags();
98 bool m_userNoBorder = false;
99 GraphicsBufferRef m_graphicsBufferRef;
100 GraphicsBufferOrigin m_graphicsBufferOrigin;
101
102 Q_DISABLE_COPY(InternalWindow)
103};
104
105}
GraphicsBufferOrigin
GraphicsBufferOrigin bufferOrigin