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

linuxfb QPA does not flush to the screen immediately

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P1: Critical P1: Critical
    • None
    • 5.15, 6.10
    • QPA: LinuxFB
    • None
    • Linux/Yocto, Linux/Other display system

      When using QWidget::repaint() on linuxfb, the widget isn't immediately repainted on the screen.

      This seems to happen because flushing is asynchronous: QFbWindow::repaint() calls QFbScreen::setDirty, which then schedules an event-driven update:

      https://codebrowser.dev/qt6/qtbase/src/platformsupport/fbconvenience/qfbscreen.cpp.html#_ZN9QFbScreen8setDirtyERK5QRect

      This should be synchronous instead, as the user requested it. (Do note that the call to repaint() comes from Qt's own code! For instance, QPushButton repaint()s on a mouse release, so that when clicked() is emitted one can temporarily block the event loop with a blocking call, but the button is supposed to be repainted lifted.)

      This is a regression from Qt 4 / QWS.

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

            lagocs Laszlo Agocs
            peppe Giuseppe D'Angelo
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes