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

Order of events when closing application got changed.

    XMLWordPrintable

Details

    • Linux/X11

    Description

      Have noticed a behavior change in Qt 5.11.1 and is affecting several applications, so have decided to bring it your attention.
      Following commit http://code.qt.io/cgit/qt/qtbase.git/commit/?id=e0b5ff4ad583befbecbcbe462998e3ed80899531 changed order in which events are handled when application is closing down and it causes some events (widget hide) to be happening sooner than before.

      I've noticed the change as it has caused annoying issues in several KF5 applications (toolbars, statusbars, dock widgets get hidden on next application launch). The problem happens when widgets are assigned WA_NativeWindow attribute and as consequence they get wrapped into QWidgetWindow.

      In Qt 5.11.0 (before above commit) the child widget destroy/hide during application close would go something like this:
      ... QMainWindow::~QMainWindow -> QStatusBar::~QStatusBar -> QWidget::destroy -> QWidgetWindow::destroy -> QWidgetWindow::hide -> QWidget::hide

      In Qt 5.11.1 (after above commit) it changed to:
      ... QGuiApplicationPrivate::processCloseEvent -> QWidgetWindow::event -> QWidgetWindow::destroy -> QWidgetWindow::hide -> QWidget::hide

      Here is the relevant KDE bug report: https://bugs.kde.org/show_bug.cgi?id=395988
      Seems it's also affecting VirtualBox http://bugzilla.opensuse.org/show_bug.cgi?id=1099589
       

      Attachments

        Issue Links

          Activity

            People

              ulherman Ulf Hermann
              maxrd2 Mladen
              Votes:
              0 Vote for this issue
              Watchers:
              7 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: