Wayland: avoid binding disabled outputs to surfaces
We don't need to bind disabled outputs to surfaces that overlaps them. This prevents error down the line and warnings about ignoring surface.enter events with Qt. BUG: 419749
This commit is contained in:
parent
e3044e619e
commit
f0f465ccbd
2 changed files with 8 additions and 4 deletions
|
@ -628,6 +628,8 @@ void DrmOutput::dpmsFinishOff()
|
|||
if (isEnabled()) {
|
||||
waylandOutput()->setDpmsMode(toWaylandDpmsMode(m_dpmsModePending));
|
||||
m_backend->createDpmsFilter();
|
||||
} else {
|
||||
waylandOutput()->setDpmsMode(toWaylandDpmsMode(DpmsMode::Off));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1941,10 +1941,12 @@ void XdgShellClient::updateClientOutputs()
|
|||
{
|
||||
QVector<OutputInterface *> clientOutputs;
|
||||
const auto outputs = waylandServer()->display()->outputs();
|
||||
for (OutputInterface *output : outputs) {
|
||||
const QRect outputGeometry(output->globalPosition(), output->pixelSize() / output->scale());
|
||||
if (frameGeometry().intersects(outputGeometry)) {
|
||||
clientOutputs << output;
|
||||
for (const auto output : outputs) {
|
||||
if (output->dpmsMode() == OutputInterface::DpmsMode::On)) {
|
||||
const QRect outputGeometry(output->globalPosition(), output->pixelSize() / output->scale());
|
||||
if (frameGeometry().intersects(outputGeometry)) {
|
||||
clientOutputs << output;
|
||||
}
|
||||
}
|
||||
}
|
||||
surface()->setOutputs(clientOutputs);
|
||||
|
|
Loading…
Reference in a new issue