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

Qt GUI application disappear or crash when no screens are available on Wayland

    XMLWordPrintable

Details

    • Bug
    • Resolution: Incomplete
    • P1: Critical
    • None
    • 5.12.7, 5.14.2, 5.15.0
    • QPA: Wayland
    • None
    • Linux/Wayland

    Description

      This bug is a wayland duplicate of https://bugreports.qt.io/browse/QTBUG-42985

      When running a QT application like RStudio on a Wayland compositor (such as `sway` or `weston`), the application becomes transparent if all screens are deactivated.

      Steps to reproduce:

      • Run rstudio
      • Execute `swaymsg output eDP-1 disable; sleep 1; swaymsg output eDP-1 enable`

      Symptoms:

       

      rfaelens@rfawork ~ % rstudio
      Use of deprecated not thread-safe setter, use setUrlRequestInterceptor instead.
      qt.qpa.wayland: Wayland does not support QWindow::requestActivate()
      Use of deprecated not thread-safe setter, use setUrlRequestInterceptor instead.
      >>>>>> This is the point where I disable the screen
      QPaintDevice::metrics: Device has no metric information
      QQuickWidget: Cannot render due to failing makeCurrent()
      QPaintDevice::metrics: Device has no metric information
      QPaintDevice::metrics: Device has no metric information
      QQuickWidget: Cannot render due to failing makeCurrent()
      QQuickWidget: Cannot render due to failing makeCurrent()
      QPaintDevice::metrics: Device has no metric information
      QPaintDevice::metrics: Device has no metric information
      QQuickWidget: Cannot render due to failing makeCurrent()
      QQuickWidget: Cannot render due to failing makeCurrent()
      QQuickWidget: Cannot render due to failing makeCurrent()
      QQuickWidget: Cannot render due to failing makeCurrent()
      

       

      This bug can be circumvented by using the XCB backend instead of the Wayland backend.

       

      rfaelens@rfawork ~ % QT_QPA_PLATFORM=xcb rstudio 
      Use of deprecated not thread-safe setter, use setUrlRequestInterceptor instead.
      Use of deprecated not thread-safe setter, use setUrlRequestInterceptor instead.
      

       

      Attachments

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

        Activity

          People

            qt.team.graphics.and.multimedia Qt Graphics Team
            rfaelens R F
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes