support raise and lower windows on wayland

connect raise/lowerRequested to workspace()->raiseClientRequest
/workspace()->lowerClientRequest
REVIEWED-BY:Martin Graesslin
icc-effect-5.14.5
Marco Martin 2015-09-16 16:36:26 +02:00
parent fc5b303c5f
commit 49e5e81970
3 changed files with 14 additions and 2 deletions

View File

@ -413,7 +413,7 @@ void Workspace::raiseClientWithinApplication(AbstractClient* c)
}
}
void Workspace::raiseClientRequest(KWin::Client *c, NET::RequestSource src, xcb_timestamp_t timestamp)
void Workspace::raiseClientRequest(KWin::AbstractClient *c, NET::RequestSource src, xcb_timestamp_t timestamp)
{
if (src == NET::FromTool || allowFullClientRaising(c, timestamp))
raiseClient(c);
@ -435,6 +435,10 @@ void Workspace::lowerClientRequest(KWin::Client *c, NET::RequestSource src, xcb_
lowerClientWithinApplication(c);
}
void Workspace::lowerClientRequest(KWin::AbstractClient *c)
{
lowerClientWithinApplication(c);
}
void Workspace::restack(AbstractClient* c, AbstractClient* under, bool force)
{

View File

@ -689,6 +689,13 @@ bool ShellClient::isInitialPositionSet() const
void ShellClient::installQtExtendedSurface(QtExtendedSurfaceInterface *surface)
{
m_qtExtendedSurface = surface;
connect(m_qtExtendedSurface, &QtExtendedSurfaceInterface::raiseRequested, this, [this]() {
workspace()->raiseClientRequest(this);
});
connect(m_qtExtendedSurface, &QtExtendedSurfaceInterface::lowerRequested, this, [this]() {
workspace()->lowerClientRequest(this);
});
}
bool ShellClient::hasStrut() const

View File

@ -176,8 +176,9 @@ public:
QRect adjustClientSize(Client* c, QRect moveResizeGeom, int mode);
void raiseClient(AbstractClient* c, bool nogroup = false);
void lowerClient(AbstractClient* c, bool nogroup = false);
void raiseClientRequest(Client* c, NET::RequestSource src, xcb_timestamp_t timestamp);
void raiseClientRequest(AbstractClient* c, NET::RequestSource src = NET::FromApplication, xcb_timestamp_t timestamp = 0);
void lowerClientRequest(Client* c, NET::RequestSource src, xcb_timestamp_t timestamp);
void lowerClientRequest(AbstractClient* c);
void restackClientUnderActive(AbstractClient*);
void restack(AbstractClient *c, AbstractClient *under, bool force = false);
void updateClientLayer(AbstractClient* c);