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

Decoration plugin is loaded unexpectedly

    XMLWordPrintable

Details

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

    Description

      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;
      
      
      

      Attachments

        Issue Links

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

          Activity

            People

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

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes