KWin
Loading...
Searching...
No Matches
slideback.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: 2009 Michael Zanetti <michael_zanetti@gmx.net>
6
7 SPDX-License-Identifier: GPL-2.0-or-later
8*/
9
10#pragma once
11
12// Include with base class for effects.
13#include "effect/effect.h"
15
16namespace KWin
17{
18
20 : public Effect
21{
22 Q_OBJECT
23public:
25
26 void prePaintWindow(EffectWindow *w, WindowPrePaintData &data, std::chrono::milliseconds presentTime) override;
27 void paintWindow(const RenderTarget &renderTarget, const RenderViewport &viewport, EffectWindow *w, int mask, QRegion region, WindowPaintData &data) override;
28 void postPaintWindow(EffectWindow *w) override;
29
30 void prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime) override;
31 void postPaintScreen() override;
32 bool isActive() const override;
33
34 int requestedEffectChainPosition() const override
35 {
36 return 50;
37 }
38
39public Q_SLOTS:
44 void slotTabBoxAdded();
45 void slotTabBoxClosed();
46
47private:
48 WindowMotionManager motionManager;
49 QList<EffectWindow *> usableOldStackingOrder;
50 QList<EffectWindow *> oldStackingOrder;
51 QList<EffectWindow *> coveringWindows;
52 QList<EffectWindow *> elevatedList;
53 EffectWindow *m_justMapped, *m_upmostWindow;
54 QHash<EffectWindow *, QRect> destinationList;
55 int m_tabboxActive;
56 QList<QRegion> clippedRegions;
57 std::chrono::milliseconds m_lastPresentTime = std::chrono::milliseconds::zero();
58
59 QRect getSlideDestination(const QRect &windowUnderGeometry, const QRect &windowOverGeometry);
60 bool isWindowUsable(EffectWindow *w);
61 bool intersects(EffectWindow *windowUnder, const QRect &windowOverGeometry);
62 QList<EffectWindow *> usableWindows(const QList<EffectWindow *> &allWindows);
63 QRect getModalGroupGeometry(EffectWindow *w);
64 void windowRaised(EffectWindow *w);
65};
66
67} // namespace
Base class for all KWin effects.
Definition effect.h:535
Representation of a window used by/for Effect classes.
void postPaintScreen() override
void prePaintWindow(EffectWindow *w, WindowPrePaintData &data, std::chrono::milliseconds presentTime) override
bool isActive() const override
int requestedEffectChainPosition() const override
Definition slideback.h:34
void postPaintWindow(EffectWindow *w) override
void slotStackingOrderChanged()
Definition slideback.cpp:32
void slotWindowUnminimized(KWin::EffectWindow *w)
void slotWindowAdded(KWin::EffectWindow *w)
void prePaintScreen(ScreenPrePaintData &data, std::chrono::milliseconds presentTime) override
void paintWindow(const RenderTarget &renderTarget, const RenderViewport &viewport, EffectWindow *w, int mask, QRegion region, WindowPaintData &data) override
void slotWindowDeleted(KWin::EffectWindow *w)
Helper class for motion dynamics in KWin effects.