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

Wayland: Output not passed to set fullscreen

    XMLWordPrintable

Details

    • Bug
    • Resolution: Out of scope
    • P3: Somewhat important
    • None
    • 5.7.0
    • QPA: Wayland
    • 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.

      Attachments

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

        Activity

          People

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

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes