KWin
Loading...
Searching...
No Matches
x11_standalone_overlaywindow.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: 2011 Arthur Arlt <a.arlt@stud.uni-heidelberg.de>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9
10#pragma once
11
12#include "core/overlaywindow.h"
13#include "x11eventfilter.h"
14
15namespace KWin
16{
17
18class X11StandaloneBackend;
19
20class KWIN_EXPORT OverlayWindowX11 : public OverlayWindow, public X11EventFilter
21{
22public:
23 explicit OverlayWindowX11(X11StandaloneBackend *backend);
24 ~OverlayWindowX11() override;
26 bool create() override;
28 void setup(xcb_window_t window) override;
29 void show() override;
30 void hide() override; // hides and resets overlay window
31 void setShape(const QRegion &reg);
32 void resize(const QSize &size) override;
34 void destroy() override;
35 xcb_window_t window() const override;
36 bool isVisible() const override;
37 void setVisibility(bool visible) override;
38
39 bool event(xcb_generic_event_t *event) override;
40
41private:
42 void setNoneBackgroundPixmap(xcb_window_t window);
43 void setupInputShape(xcb_window_t window);
44 bool m_visible;
45 bool m_shown; // For showOverlay()
46
47 X11StandaloneBackend *m_backend;
48 QSize m_size;
49 QRegion m_shape;
50 xcb_window_t m_window;
51};
52} // namespace