[platforms/drm] Apply new global position on DrmOutput for a changeset

Summary:
When we get a configuration request, we also need to update the global
position on the DrmOutput, otherwise Wayland will know about the new
position, but KWin internally does not.

In addition we also need to trigger the changed signal on KWin::Screens,
so that internally code can react on the change.

With this change configuring layout of connected screens in KScreen
does work also in KWin.

Reviewers: #kwin, #plasma_on_wayland, sebas

Subscribers: plasma-devel, kwin

Tags: #plasma_on_wayland, #kwin

Differential Revision: https://phabricator.kde.org/D1858
This commit is contained in:
Martin Gräßlin 2016-06-14 10:53:46 +02:00
parent 2b196bfa29
commit f5b83d18b8
2 changed files with 2 additions and 0 deletions

View file

@ -387,6 +387,7 @@ void DrmBackend::configurationChangeRequested(KWayland::Server::OutputConfigurat
}
drmoutput->setChanges(changeset);
}
emit screens()->changed();
}
DrmOutput *DrmBackend::findOutput(quint32 connector)

View file

@ -604,6 +604,7 @@ bool DrmOutput::commitChanges()
qCDebug(KWIN_DRM) << "Server setting position: " << m_changeset->position();
m_waylandOutput->setGlobalPosition(m_changeset->position());
m_waylandOutputDevice->setGlobalPosition(m_changeset->position());
setGlobalPos(m_changeset->position());
// may just work already!
}
if (m_changeset->scaleChanged()) {