Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-54883

Wayland: Output not passed to set fullscreen

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Out of scope
    • Icon: P3: Somewhat important P3: Somewhat important
    • None
    • 5.7.0
    • QPA: Wayland
    • None

      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.

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            mgraesslin Martin Gräßlin
            mgraesslin Martin Gräßlin
            Votes:
            4 Vote for this issue
            Watchers:
            6 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes