forked from Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
47 lines
1.0 KiB
47 lines
1.0 KiB
/* |
|
Registers as a embed container |
|
SPDX-FileCopyrightText: 2015 David Edmundson <[email protected]> |
|
|
|
SPDX-License-Identifier: LGPL-2.1-or-later |
|
*/ |
|
|
|
#pragma once |
|
|
|
#include <QAbstractNativeEventFilter> |
|
#include <QHash> |
|
#include <QObject> |
|
|
|
#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; |
|
|
|
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(); |
|
|
|
uint8_t m_damageEventBase; |
|
|
|
QHash<xcb_window_t, u_int32_t> m_damageWatches; |
|
QHash<xcb_window_t, SNIProxy *> m_proxies; |
|
KSelectionOwner *m_selectionOwner; |
|
};
|
|
|