You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
core/xembed-sni-proxy/fdoselectionmanager.h

48 lines
1.0 KiB
C

5 years ago
/*
Registers as a embed container
SPDX-FileCopyrightText: 2015 David Edmundson <davidedmundson@kde.org>
5 years ago
SPDX-License-Identifier: LGPL-2.1-or-later
*/
#pragma once
5 years ago
#include <QAbstractNativeEventFilter>
#include <QHash>
#include <QObject>
5 years ago
#include <xcb/xcb.h>
class KSelectionOwner;
class SNIProxy;
class FdoSelectionManager : public QObject, public QAbstractNativeEventFilter
{
Q_OBJECT
public:
FdoSelectionManager();
~FdoSelectionManager() override;
protected:
bool nativeEventFilter(const QByteArray &eventType, void *message, long *result) override;
5 years ago
private Q_SLOTS:
void onClaimedOwnership();
void onFailedToClaimOwnership();
void onLostOwnership();
private:
void init();
bool addDamageWatch(xcb_window_t client);
void dock(xcb_window_t embed_win);
void undock(xcb_window_t client);
void setSystemTrayVisual();
5 years ago
uint8_t m_damageEventBase;
QHash<xcb_window_t, u_int32_t> m_damageWatches;
QHash<xcb_window_t, SNIProxy *> m_proxies;
5 years ago
KSelectionOwner *m_selectionOwner;
};