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

QWindow: windowState() and visibility() do not match when changing window state non-programmatically (by clicking on taskbar/icons)

    XMLWordPrintable

Details

    • Bug
    • Resolution: Done
    • P3: Somewhat important
    • 5.9
    • 5.6.2, 5.7.1, 5.8.0
    • GUI: Window management
    • None
    • Windows 8.1, Linux XCB
    • 535b142393063b8f9504cb3c2eb716bcfddbbeee (qtbase/5.9, 8.3.2017, 5.9)

    Description

      If minimize maximize or restore to normal view by OS actions:
      window states and visibility does not match.

      If do the same by programmatically: states and visibility is comply.

      Act 1: Reproduce steps:
      1) minimize window by QWidget::showMinimized();
      2) click on taskbar for show normal;

      Expect:
      1)
      -windowState(): Qt::WindowState(WindowMinimized)
      -visibility(): QWindow::Visibility(Minimized)
      2)
      -windowState(): Qt::WindowState(WindowNoState)
      -visibility(): QWindow::Visibility(Windowed)

      Result:
      1)
      -windowState(): Qt::WindowState(WindowMinimized)
      -visibility(): QWindow::Visibility(Minimized)
      2)
      -windowState(): Qt::WindowState(WindowNoState)
      -visibility(): QWindow::Visibility(Minimized)

      Act 2: Reproduce steps:
      1) minimize window by windows system Button "minimize"
      2) click on taskbar for show normal;

      Expect:
      1)
      -windowState(): Qt::WindowState(WindowMinimized)
      -visibility(): QWindow::Visibility(Minimized)
      2)
      -windowState(): Qt::WindowState(WindowNoState)
      -visibility(): QWindow::Visibility(Windowed)

      Result:
      1)
      -windowState(): Qt::WindowState(WindowNoState)
      -visibility(): QWindow::Visibility(Windowed)
      2)
      -windowState(): Qt::WindowState(WindowNoState)
      -visibility(): QWindow::Visibility(Windowed)

      and no signals was emitted (exept QWindow::activeChanged())
      expected:
      QWindow::windowStateChanged()
      QWindow::visibleChanged()

      For correct test app full check: need to set unstucked windows at Windows taskbar.

      Attachments

        1. qtbug59313_diag.diff
          3 kB
        2. qtbug59313.zip
          3 kB
        3. WindowStateTest.zip
          2 kB
        For Gerrit Dashboard: QTBUG-59313
        # Subject Branch Project Status CR V

        Activity

          People

            kleint Friedemann Kleint
            sergeymoskalenko Sergey Moskalenko
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes