Request state changes in PlasmaWindow interface
This commit is contained in:
parent
93c1521624
commit
1a4c431ae7
2 changed files with 62 additions and 0 deletions
|
@ -78,6 +78,8 @@ public:
|
||||||
private:
|
private:
|
||||||
static void unbind(wl_resource *resource);
|
static void unbind(wl_resource *resource);
|
||||||
static void destroyListenerCallback(wl_listener *listener, void *data);
|
static void destroyListenerCallback(wl_listener *listener, void *data);
|
||||||
|
static void setStateCallback(wl_client *client, wl_resource *resource, uint32_t flags, uint32_t state);
|
||||||
|
static void setVirtualDesktopCallback(wl_client *client, wl_resource *resource, uint32_t number);
|
||||||
static void closeCallback(wl_client *client, wl_resource *resource);
|
static void closeCallback(wl_client *client, wl_resource *resource);
|
||||||
static Private *cast(wl_resource *resource) {
|
static Private *cast(wl_resource *resource) {
|
||||||
return reinterpret_cast<Private*>(wl_resource_get_user_data(resource));
|
return reinterpret_cast<Private*>(wl_resource_get_user_data(resource));
|
||||||
|
@ -204,6 +206,8 @@ PlasmaWindowInterface *PlasmaWindowManagementInterface::createWindow(QObject *pa
|
||||||
}
|
}
|
||||||
|
|
||||||
const struct org_kde_plasma_window_interface PlasmaWindowInterface::Private::s_interface = {
|
const struct org_kde_plasma_window_interface PlasmaWindowInterface::Private::s_interface = {
|
||||||
|
setStateCallback,
|
||||||
|
setVirtualDesktopCallback,
|
||||||
closeCallback
|
closeCallback
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -343,6 +347,52 @@ void PlasmaWindowInterface::Private::closeCallback(wl_client *client, wl_resourc
|
||||||
emit p->q->closeRequested();
|
emit p->q->closeRequested();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PlasmaWindowInterface::Private::setVirtualDesktopCallback(wl_client *client, wl_resource *resource, uint32_t number)
|
||||||
|
{
|
||||||
|
Q_UNUSED(client)
|
||||||
|
Private *p = cast(resource);
|
||||||
|
emit p->q->virtualDesktopRequested(number);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PlasmaWindowInterface::Private::setStateCallback(wl_client *client, wl_resource *resource, uint32_t flags, uint32_t state)
|
||||||
|
{
|
||||||
|
Q_UNUSED(client)
|
||||||
|
Private *p = cast(resource);
|
||||||
|
if (flags & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_ACTIVE) {
|
||||||
|
emit p->q->activeRequested(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_ACTIVE);
|
||||||
|
}
|
||||||
|
if (flags & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MINIMIZED) {
|
||||||
|
emit p->q->minimizedRequested(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MINIMIZED);
|
||||||
|
}
|
||||||
|
if (flags & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MAXIMIZED) {
|
||||||
|
emit p->q->maximizedRequested(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MAXIMIZED);
|
||||||
|
}
|
||||||
|
if (flags & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_FULLSCREEN) {
|
||||||
|
emit p->q->fullscreenRequested(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_FULLSCREEN);
|
||||||
|
}
|
||||||
|
if (flags & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_KEEP_ABOVE) {
|
||||||
|
emit p->q->keepAboveRequested(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_KEEP_ABOVE);
|
||||||
|
}
|
||||||
|
if (flags & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_KEEP_BELOW) {
|
||||||
|
emit p->q->keepBelowRequested(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_KEEP_BELOW);
|
||||||
|
}
|
||||||
|
if (flags & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_DEMANDS_ATTENTION) {
|
||||||
|
emit p->q->demandsAttentionRequested(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_DEMANDS_ATTENTION);
|
||||||
|
}
|
||||||
|
if (flags & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_CLOSEABLE) {
|
||||||
|
emit p->q->closeableRequested(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_CLOSEABLE);
|
||||||
|
}
|
||||||
|
if (flags & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MINIMIZABLE) {
|
||||||
|
emit p->q->minimizeableRequested(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MINIMIZABLE);
|
||||||
|
}
|
||||||
|
if (flags & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MAXIMIZABLE) {
|
||||||
|
emit p->q->maximizeableRequested(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_MAXIMIZABLE);
|
||||||
|
}
|
||||||
|
if (flags & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_FULLSCREENABLE) {
|
||||||
|
emit p->q->fullscreenableRequested(state & ORG_KDE_PLASMA_WINDOW_MANAGEMENT_STATE_FULLSCREENABLE);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
PlasmaWindowInterface::PlasmaWindowInterface(PlasmaWindowManagementInterface *wm, QObject *parent)
|
PlasmaWindowInterface::PlasmaWindowInterface(PlasmaWindowManagementInterface *wm, QObject *parent)
|
||||||
: QObject(parent)
|
: QObject(parent)
|
||||||
, d(new Private(wm, this))
|
, d(new Private(wm, this))
|
||||||
|
|
|
@ -87,6 +87,18 @@ public:
|
||||||
|
|
||||||
Q_SIGNALS:
|
Q_SIGNALS:
|
||||||
void closeRequested();
|
void closeRequested();
|
||||||
|
void virtualDesktopRequested(quint32 desktop);
|
||||||
|
void activeRequested(bool set);
|
||||||
|
void minimizedRequested(bool set);
|
||||||
|
void maximizedRequested(bool set);
|
||||||
|
void fullscreenRequested(bool set);
|
||||||
|
void keepAboveRequested(bool set);
|
||||||
|
void keepBelowRequested(bool set);
|
||||||
|
void demandsAttentionRequested(bool set);
|
||||||
|
void closeableRequested(bool set);
|
||||||
|
void minimizeableRequested(bool set);
|
||||||
|
void maximizeableRequested(bool set);
|
||||||
|
void fullscreenableRequested(bool set);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
friend class PlasmaWindowManagementInterface;
|
friend class PlasmaWindowManagementInterface;
|
||||||
|
|
Loading…
Reference in a new issue