3
0
mirror of https://github.com/Qortal/Brooklyn.git synced 2025-02-14 11:15:54 +00:00
Brooklyn/plasma/workspace/shell/primaryoutputwatcher.h
2022-03-05 22:41:29 +05:00

55 lines
1.1 KiB
C++

/*
SPDX-FileCopyrightText: 2021 Aleix Pol Gonzalez <aleixpol@kde.org>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#ifndef PRIMARYOUTPUTWATCHER_H
#define PRIMARYOUTPUTWATCHER_H
#include <QAbstractNativeEventFilter>
#include <QObject>
namespace KWayland
{
namespace Client
{
class Registry;
class ConnectionThread;
}
}
class QScreen;
class PrimaryOutputWatcher : public QObject, public QAbstractNativeEventFilter
{
Q_OBJECT
public:
PrimaryOutputWatcher(QObject *parent);
QScreen *primaryScreen() const;
QScreen *screenForName(const QString &outputName) const;
Q_SIGNALS:
void primaryOutputNameChanged(const QString &oldOutputName, const QString &newOutputName);
protected:
friend class WaylandOutputDevice;
void setPrimaryOutputName(const QString &outputName);
private:
void setupRegistry();
bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) override;
// All
QString m_primaryOutputName;
// Wayland
KWayland::Client::Registry *m_registry = nullptr;
QString m_primaryOutputWayland;
// Xrandr
int m_xrandrExtensionOffset;
};
#endif // PRIMARYOUTPUTWATCHER_H