Details
-
Bug
-
Resolution: Out of scope
-
P3: Somewhat important
-
None
-
5.7.0
-
None
Description
When setting a window fullscreen the output (QScreen) is not passed to the set_fullscreen call. Thus the Wayland compositor has no idea on which output to show the newly created window.
From qwaylandwlshellsurface.cpp:
void QWaylandWlShellSurface::setFullscreen()
{
m_fullscreen = true;
m_size = m_window->window()->geometry().size();
set_fullscreen(WL_SHELL_SURFACE_FULLSCREEN_METHOD_DEFAULT, 0, 0);
}
This is a problem in case an application tries to create a fullscreen window for each output. Consider the following example from ksplahsqml (KDE application in plasma-workspace)
foreach(QScreen* screen, screens()) adoptScreen(screen); void SplashApp::adoptScreen(QScreen* screen) { SplashWindow *w = new SplashWindow(m_testing, m_window); w->setScreen(screen); w->setGeometry(screen->geometry()); w->setStage(m_stage); w->setVisible(true); m_windows << w; // snip unrelated code }
A Wayland compositor might place them all on the first Output which is not what the application intends to do.