https://bugs.kde.org/show_bug.cgi?id=458886

            Bug ID: 458886
           Summary: QWindow::setScreen() no longer works with
                    layer-shell-qt
           Product: layer-shell-qt
           Version: unspecified
          Platform: Fedora RPMs
                OS: Linux
            Status: REPORTED
          Severity: normal
          Priority: NOR
         Component: general
          Assignee: aleix...@kde.org
          Reporter: aleba...@fedoraproject.org
  Target Milestone: ---

SUMMARY
Before 9f8b8c97[1] it was possible to use layer-shell-qt with only
`QT_WAYLAND_SHELL_INTEGRATION=layer-shell`. Existing code with
QWindow->setScreen() was assigning the screens without any changes.

Now any application that uses multiple screens MUST use layer-shell-qt
explicitly and implement an additional, ifdef'ed code path to set the screens
for only that scenario. And by the way, layer-shell-qt lacks the way to check
if wlr-layer-shell is actually supported by the compositor, which makes that
code path even more complicated.

For the record, I perfectly realize the purpose of desiredScreen -- lack of the
way to request a compositor default screen with setScreen.
I don't have a good solution for that, just a random idea to throw at you:
Can we set primaryScreen to QPlaceholderPlatformScreen from layer-shell-qt init
code or otherwise keep it in sync with the compositor default?
Are there other, better ways to check that the window's screen was set
explicitly by user?

[1]: https://invent.kde.org/plasma/layer-shell-qt/-/merge_requests/15

STEPS TO REPRODUCE
```
for (QScreen *screen : qGuiApp->primaryScreen()->virtualSiblings()) {
  QQuickView *view = new QQuickView();
  // ...
  view->setScreen(screen);
  view->setResizeMode(QQuickView::SizeRootObjectToView);
  view->setGeometry(screen->geometry());
  view->show();
}
```

(if this code looks familiar - yes, it's a simplified snippet from sddm
GreeterApp)

OBSERVED RESULT
All the surfaces are created on the same screen, only one is visible.

EXPECTED RESULT
I expect to see one surface per screen.

SOFTWARE/OS VERSIONS
Qt Version: 5.15.5
Layer-shell-qt version: 5.25.4

ADDITIONAL INFORMATION

-- 
You are receiving this mail because:
You are watching all bug changes.

Reply via email to