kwin/waylandclient.h
Vlad Zahorodnii 40dca1c93e Implement window hiding in the WaylandClient class
This change upstreams window hiding functionality from the XdgSurfaceClient
class to the WaylandClient class in order to reduce the amount of duplicated
code in new wayland client sub-classes.
2020-08-18 14:21:41 +00:00

69 lines
1.9 KiB
C++

/*
SPDX-FileCopyrightText: 2020 Vlad Zahorodnii <vlad.zahorodnii@kde.org>
SPDX-License-Identifier: GPL-2.0-or-later
*/
#pragma once
#include "abstract_client.h"
namespace KWin
{
class WaylandClient : public AbstractClient
{
Q_OBJECT
public:
WaylandClient(KWaylandServer::SurfaceInterface *surface);
QString captionNormal() const override;
QString captionSuffix() const override;
QStringList activities() const override;
void setOnAllActivities(bool set) override;
void blockActivityUpdates(bool b = true) override;
QPoint clientContentPos() const override;
QRect transparentRect() const override;
quint32 windowId() const override;
pid_t pid() const override;
bool isLockScreen() const override;
bool isInputMethod() const override;
bool isLocalhost() const override;
double opacity() const override;
void setOpacity(double opacity) override;
AbstractClient *findModal(bool allow_itself = false) override;
void resizeWithChecks(const QSize &size, ForceGeometry_t force = NormalGeometrySet) override;
void killWindow() override;
QByteArray windowRole() const override;
bool isShown(bool shaded_is_shown) const override;
bool isHiddenInternal() const override;
void hideClient(bool hide) override;
bool isHidden() const;
void updateDepth();
void setCaption(const QString &caption);
protected:
bool belongsToSameApplication(const AbstractClient *other, SameApplicationChecks checks) const override;
bool belongsToDesktop() const override;
void doSetActive() override;
void updateCaption() override;
private:
void updateClientArea();
void updateClientOutputs();
void updateIcon();
void updateResourceName();
void internalShow();
void internalHide();
QString m_captionNormal;
QString m_captionSuffix;
double m_opacity = 1.0;
quint32 m_windowId;
bool m_isHidden = false;
};
} // namespace KWin