12#include "kwin_export.h"
28class EffectWindowGroup;
29class EffectWindowVisibleRef;
32class SurfaceInterface;
43class KWIN_EXPORT EffectWindow :
public QObject
46 Q_PROPERTY(QRectF geometry READ frameGeometry)
47 Q_PROPERTY(QRectF expandedGeometry READ expandedGeometry)
48 Q_PROPERTY(qreal height READ height)
49 Q_PROPERTY(qreal opacity READ opacity)
50 Q_PROPERTY(QPointF pos READ pos)
52 Q_PROPERTY(QSizeF size READ size)
53 Q_PROPERTY(qreal width READ width)
54 Q_PROPERTY(qreal x READ x)
55 Q_PROPERTY(qreal y READ y)
57 Q_PROPERTY(
bool onAllDesktops READ isOnAllDesktops)
58 Q_PROPERTY(
bool onCurrentDesktop READ isOnCurrentDesktop)
59 Q_PROPERTY(QRectF rect READ rect)
60 Q_PROPERTY(QString windowClass READ windowClass)
61 Q_PROPERTY(QString windowRole READ windowRole)
66 Q_PROPERTY(
bool desktopWindow READ isDesktop)
71 Q_PROPERTY(
bool dock READ isDock)
76 Q_PROPERTY(
bool toolbar READ isToolbar)
81 Q_PROPERTY(
bool menu READ isMenu)
87 Q_PROPERTY(
bool normalWindow READ isNormalWindow)
92 Q_PROPERTY(
bool dialog READ isDialog)
98 Q_PROPERTY(
bool splash READ isSplash)
103 Q_PROPERTY(
bool utility READ isUtility)
109 Q_PROPERTY(
bool dropdownMenu READ isDropdownMenu)
114 Q_PROPERTY(
bool popupMenu READ isPopupMenu)
119 Q_PROPERTY(
bool tooltip READ isTooltip)
124 Q_PROPERTY(
bool notification READ isNotification)
129 Q_PROPERTY(
bool criticalNotification READ isCriticalNotification)
134 Q_PROPERTY(
bool onScreenDisplay READ isOnScreenDisplay)
139 Q_PROPERTY(
bool comboBox READ isComboBox)
144 Q_PROPERTY(
bool dndIcon READ isDNDIcon)
149 Q_PROPERTY(
int windowType READ windowType)
154 Q_PROPERTY(
bool managed READ isManaged)
158 Q_PROPERTY(
bool deleted READ isDeleted)
162 Q_PROPERTY(QString caption READ caption)
166 Q_PROPERTY(
bool keepAbove READ keepAbove)
170 Q_PROPERTY(
bool keepBelow READ keepBelow)
174 Q_PROPERTY(
bool minimized READ isMinimized WRITE setMinimized)
178 Q_PROPERTY(
bool modal READ isModal)
184 Q_PROPERTY(
bool moveable READ isMovable)
189 Q_PROPERTY(
bool moveableAcrossScreens READ isMovableAcrossScreens)
194 Q_PROPERTY(QSizeF basicUnit READ basicUnit)
198 Q_PROPERTY(
bool move READ isUserMove)
202 Q_PROPERTY(
bool resize READ isUserResize)
207 Q_PROPERTY(QRectF iconGeometry READ iconGeometry)
213 Q_PROPERTY(
bool specialWindow READ isSpecialWindow)
214 Q_PROPERTY(QIcon icon READ icon)
218 Q_PROPERTY(
bool skipSwitcher READ isSkipSwitcher)
222 Q_PROPERTY(QRectF contentsRect READ contentsRect)
227 Q_PROPERTY(QRectF decorationInnerRect READ decorationInnerRect)
228 Q_PROPERTY(
bool hasDecoration READ hasDecoration)
229 Q_PROPERTY(QStringList activities READ activities)
230 Q_PROPERTY(
bool onCurrentActivity READ isOnCurrentActivity)
231 Q_PROPERTY(
bool onAllActivities READ isOnAllActivities)
236 Q_PROPERTY(
bool decorationHasAlpha READ decorationHasAlpha)
246 Q_PROPERTY(
bool visible READ isVisible)
253 Q_PROPERTY(
bool skipsCloseAnimation READ skipsCloseAnimation)
259 Q_PROPERTY(
bool fullScreen READ isFullScreen)
269 Q_PROPERTY(
bool unresponsive READ isUnresponsive)
275 Q_PROPERTY(
bool waylandClient READ isWaylandClient CONSTANT)
281 Q_PROPERTY(
bool x11Client READ isX11Client CONSTANT)
291 Q_PROPERTY(
bool popupWindow READ isPopupWindow CONSTANT)
299 Q_PROPERTY(QWindow *internalWindow READ internalWindow CONSTANT)
308 Q_PROPERTY(
bool outline READ isOutline CONSTANT)
315 Q_PROPERTY(pid_t pid READ pid CONSTANT)
322 Q_PROPERTY(
bool lockScreen READ isLockScreen CONSTANT)
327 Q_PROPERTY(
bool hiddenByShowDesktop READ isHiddenByShowDesktop)
333 PAINT_DISABLED = 1 << 0,
335 PAINT_DISABLED_BY_DESKTOP = 1 << 1,
337 PAINT_DISABLED_BY_MINIMIZE = 1 << 2,
339 PAINT_DISABLED_BY_ACTIVITY = 1 << 3,
345 Q_SCRIPTABLE
void addRepaint(
const QRect &r);
346 Q_SCRIPTABLE
void addRepaint(
int x,
int y,
int w,
int h);
347 Q_SCRIPTABLE
void addRepaintFull();
348 Q_SCRIPTABLE
void addLayerRepaint(
const QRect &r);
349 Q_SCRIPTABLE
void addLayerRepaint(
int x,
int y,
int w,
int h);
361 bool isOnCurrentActivity()
const;
362 Q_SCRIPTABLE
bool isOnActivity(
const QString &
id)
const;
363 bool isOnAllActivities()
const;
367 bool isOnCurrentDesktop()
const;
368 bool isOnAllDesktops()
const;
384 QSizeF basicUnit()
const;
423 QRectF contentsRect()
const;
429 QRectF decorationInnerRect()
const;
430 bool hasDecoration()
const;
436 KDecoration2::Decoration *decoration()
const;
437 QByteArray readProperty(
long atom,
long type,
int format)
const;
438 void deleteProperty(
long atom)
const;
442 QString windowClass()
const;
543 NET::WindowType windowType()
const;
548 bool isManaged()
const;
565 Q_SCRIPTABLE QList<KWin::EffectWindow *> mainWindows()
const;
573 void setMinimized(
bool minimize);
576 Q_SCRIPTABLE
void closeWindow();
581 bool isVisible()
const;
606 bool isWaylandClient()
const;
611 bool isX11Client()
const;
621 QWindow *internalWindow()
const;
641 qlonglong windowId()
const;
663 Q_SCRIPTABLE
void setData(
int role,
const QVariant &data);
664 Q_SCRIPTABLE QVariant data(
int role)
const;
668 void elevate(
bool elevate);
851 std::unique_ptr<Private> d;
869 m_window->refWindow();
873 : m_window(other.m_window)
876 m_window->refWindow();
883 m_window->unrefWindow();
889 if (other.m_window) {
893 m_window->unrefWindow();
895 m_window = other.m_window;
901 return m_window ==
nullptr;
925 m_window->refVisible(
this);
929 : m_window(other.m_window)
930 , m_reason(other.m_reason)
933 m_window->refVisible(
this);
940 m_window->unrefVisible(
this);
951 if (other.m_window) {
955 m_window->unrefVisible(
this);
957 m_window = other.m_window;
958 m_reason = other.m_reason;
964 return m_window ==
nullptr;
978 QList<EffectWindow *> members()
const;
EffectWindowDeletedRef(const EffectWindowDeletedRef &other)
EffectWindowDeletedRef & operator=(const EffectWindowDeletedRef &other)
~EffectWindowDeletedRef()
EffectWindowDeletedRef(EffectWindow *window)
Representation of a window used by/for Effect classes.
bool isSkipSwitcher() const
QRectF expandedGeometry() const
void windowStartUserMovedResized(KWin::EffectWindow *w)
Q_SCRIPTABLE void addRepaint(const QRect &r)
QRectF clientGeometry() const
void windowDamaged(KWin::EffectWindow *w)
bool isOnScreenDisplay() const
QString windowRole() const
bool acceptsFocus() const
Q_SCRIPTABLE void addLayerRepaint(const QRect &r)
void windowHidden(KWin::EffectWindow *w)
void windowDesktopsChanged(KWin::EffectWindow *window)
void windowExpandedGeometryChanged(KWin::EffectWindow *window)
void windowKeepAboveChanged(KWin::EffectWindow *w)
void minimizedChanged(KWin::EffectWindow *w)
bool isUserResize() const
bool isDropdownMenu() const
void windowKeepBelowChanged(KWin::EffectWindow *w)
bool isAppletPopup() const
bool isNormalWindow() const
bool isUnresponsive() const
void windowStepUserMovedResized(KWin::EffectWindow *w, const QRectF &geometry)
bool isSpecialWindow() const
void windowDecorationChanged(KWin::EffectWindow *window)
QRectF iconGeometry() const
QStringList activities() const
void windowFrameGeometryChanged(KWin::EffectWindow *window, const QRectF &oldGeometry)
bool decorationHasAlpha() const
QRectF bufferGeometry() const
bool isFullScreen() const
void windowModalityChanged(KWin::EffectWindow *w)
void refVisible(const EffectWindowVisibleRef *holder)
bool isNotification() const
bool isMovableAcrossScreens() const
bool isInputMethod() const
SurfaceInterface * surface() const
void windowMaximizedStateAboutToChange(KWin::EffectWindow *w, bool horizontal, bool vertical)
bool isPopupWindow() const
bool skipsCloseAnimation() const
void windowOpacityChanged(KWin::EffectWindow *w, qreal oldOpacity, qreal newOpacity)
void windowUnresponsiveChanged(KWin::EffectWindow *w, bool unresponsive)
friend EffectWindowVisibleRef
void windowFullScreenChanged(KWin::EffectWindow *w)
bool isCriticalNotification() const
void windowShown(KWin::EffectWindow *w)
bool isLockScreen() const
void windowFinishUserMovedResized(KWin::EffectWindow *w)
void windowMaximizedStateChanged(KWin::EffectWindow *w, bool horizontal, bool vertical)
bool isHiddenByShowDesktop() const
void windowFrameGeometryAboutToChange(KWin::EffectWindow *window)
QRectF frameGeometry() const
QList< KWin::VirtualDesktop * > desktops() const
EffectWindowVisibleRef(const EffectWindowVisibleRef &other)
EffectWindowVisibleRef & operator=(const EffectWindowVisibleRef &other)
~EffectWindowVisibleRef()
EffectWindowVisibleRef(EffectWindow *window, int reason)
Resource representing a wl_surface.