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

Decoration plugin is loaded unexpectedly

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Out of scope
    • Icon: P2: Important P2: Important
    • None
    • 5.12.9, 5.13.2
    • QPA: Wayland
    • Weston, ivi-shell
    • Linux/Wayland

      1. QQuickWindow::show() (with ivi-shell)
      2. QQuickWindow::hide()
        1. QWaylandWindow::setVisible(false)
        2. QWaylandWindow::reset(true)
        3. mShellSurface is deleted.
        4. QQuickWindow::hideEvent()
          ~~~
        5. main thread is blocked in QSGThreadedRenderLoop::releaseResources(.
        6. QSGThreadedRenderLoop::invalidateOpenGL on Render thread
        7. QWaylandGLContext::makeCurrent on Render thread
        8. QWaylandWindow::createDecoration on Render thread
        9. mShellSurface is null at this point, so Decoration plugin(libbradient.so) is loaded.

      However, Decoration is not required in ivi-shell. Therefore, QWaylandWindow should store decoration policy of own's shell surface and it should be used in QWaylandWindow::createDecoration()

      bool QWaylandWindow::createDecoration()
      {
          if (!mDisplay->supportsWindowDecoration())
              return false;
      
          static bool decorationPluginFailed = false;
          bool decoration = false;
          switch (window()->type()) {
              case Qt::Window:
              case Qt::Widget:
              case Qt::Dialog:
              case Qt::Tool:
              case Qt::Drawer:
                  decoration = true;
                  break;
              default:
                  break;
          }
          if (mFlags & Qt::FramelessWindowHint)
              decoration = false;
          if (mFlags & Qt::BypassWindowManagerHint)
              decoration = false;
          if (mSubSurfaceWindow)
              decoration = false;
          // when QQuickWindow's hide() is called, mShellSurface is null
          if (mShellSurface && !mShellSurface->wantsDecorations())
              decoration = false;
      
      
      

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

            esabraha Eskil Abrahamsen Blomfeldt
            dekim dennis kim
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes