a9d5b84596
This introduces the markedAsZombie signal, which is emitted when the window is about to become deleted. The X11SurfaceItem uses this signal to determine when the damage must be destroyed.
58 lines
1.4 KiB
C++
58 lines
1.4 KiB
C++
/*
|
|
KWin - the KDE window manager
|
|
This file is part of the KDE project.
|
|
|
|
SPDX-FileCopyrightText: 2006 Lubos Lunak <l.lunak@kde.org>
|
|
|
|
SPDX-License-Identifier: GPL-2.0-or-later
|
|
*/
|
|
|
|
#ifndef KWIN_UNMANAGED_H
|
|
#define KWIN_UNMANAGED_H
|
|
|
|
#include <netwm.h>
|
|
|
|
#include "toplevel.h"
|
|
|
|
namespace KWin
|
|
{
|
|
|
|
class KWIN_EXPORT Unmanaged : public Toplevel
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit Unmanaged();
|
|
bool windowEvent(xcb_generic_event_t *e);
|
|
bool track(xcb_window_t w);
|
|
bool hasScheduledRelease() const;
|
|
static void deleteUnmanaged(Unmanaged* c);
|
|
QRect bufferGeometry() const override;
|
|
int desktop() const override;
|
|
QStringList activities() const override;
|
|
QVector<VirtualDesktop *> desktops() const override;
|
|
QPoint clientPos() const override;
|
|
QRect transparentRect() const override;
|
|
Layer layer() const override {
|
|
return UnmanagedLayer;
|
|
}
|
|
NET::WindowType windowType(bool direct = false, int supported_types = 0) const override;
|
|
bool isOutline() const override;
|
|
|
|
public Q_SLOTS:
|
|
void release(ReleaseReason releaseReason = ReleaseReason::Release);
|
|
|
|
private:
|
|
~Unmanaged() override; // use release()
|
|
// handlers for X11 events
|
|
void configureNotifyEvent(xcb_configure_notify_event_t *e);
|
|
void damageNotifyEvent();
|
|
QWindow *findInternalWindow() const;
|
|
void associate();
|
|
void initialize();
|
|
bool m_outline = false;
|
|
bool m_scheduledRelease = false;
|
|
};
|
|
|
|
} // namespace
|
|
|
|
#endif
|