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

QtWidgets applications bounce during resize

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Unresolved
    • Icon: P2: Important P2: Important
    • None
    • 5.15.1
    • QPA: Wayland
    • None
    • Linux/Wayland

      If you resize any QtWidgets-based application, e.g. Dolphin, by dragging its top-left corner, the bottom-right corner will bounce during resize.

      After running Dolphin with WAYLAND_DEBUG=1, I found a somewhat strange behavior

      [2452527.323] wl_buffer@59.release()
      [2452527.325] xdg_toplevel@32.configure(1415, 751, array) # resizing
      [2452527.330] xdg_surface@31.configure(1861)
      [2452527.339] xdg_toplevel@32.configure(1426, 754, array) # resizing
      [2452527.346] xdg_surface@31.configure(1862)
      [2452527.349] wl_buffer@46.release()
      [2452527.351] xdg_toplevel@32.configure(1437, 757, array) # resizing
      [2452527.357] xdg_surface@31.configure(1863)
      [2452527.360] xdg_toplevel@32.configure(1454, 761, array) # resizing
      [2452527.363] xdg_surface@31.configure(1864)
      [2452527.366] xdg_toplevel@32.configure(1469, 767, array) # resizing
      [2452527.372] xdg_surface@31.configure(1865)
      [2452527.375] xdg_toplevel@32.configure(1479, 769, array) # resizing
      [2452527.380] xdg_surface@31.configure(1866)
      [2452527.671] -> wl_shm_pool@39.destroy()
      [2452527.681] -> wl_buffer@59.destroy()
      [2452527.871] -> wl_shm_pool@57.destroy()
      [2452527.879] -> wl_buffer@46.destroy()
      [2452527.908] -> wl_shm@6.create_pool(new id wl_shm_pool@50, fd 38, 17002640)
      [2452527.915] -> wl_shm_pool@50.create_buffer(new id wl_buffer@38, 0, 2830, 1502, 11320, 0)
      [2452550.453] -> xdg_surface@31.set_window_geometry(0, 0, 1479, 769)
      [2452550.470] -> xdg_toplevel@32.set_min_size(406, 382)
      [2452550.473] -> xdg_toplevel@32.set_max_size(0, 0)
      [2452550.477] -> xdg_surface@31.ack_configure(1866)
      [2452550.486] -> wl_surface@26.frame(new id wl_callback@55)
      [2452550.495] -> wl_surface@26.attach(wl_buffer@38, 0, 0)
      [2452550.500] -> wl_surface@26.damage(0, 0, 1415, 751)
      [2452550.507] -> wl_surface@26.commit() # responding to configure event with serial 1866
      [2452550.557] -> wl_shm@6.create_pool(new id wl_shm_pool@61, fd 39, 17002640)
      [2452550.565] -> wl_shm_pool@61.create_buffer(new id wl_buffer@58, 0, 2830, 1502, 11320, 0)
      [2452558.259] -> wl_surface@26.frame(new id wl_callback@35)
      [2452558.273] -> wl_surface@26.attach(wl_buffer@58, 0, 0)
      [2452558.277] -> wl_surface@26.damage(0, 0, 1415, 751)
      [2452558.282] -> wl_surface@26.commit() # huh, responding to configure event with serial 1861???
      [2452573.067] -> zwp_text_input_v2@21.update_state(1306, 0)
      [2452573.178] -> zwp_text_input_v2@21.update_state(1306, 0)

      As you can see, Dolphin resizes itself according to the last received configure event (whose serial is 1866), but then for some reason, it immediately commits another buffer, which seems to be in response to the first configure event (whose serial is 1861). This causes the bouncing issue.

      QtQuick-based applications seem to be unaffected by this issue.

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

            qt.team.graphics.and.multimedia Qt Graphics Team
            zzag Vlad Zahorodnii
            Votes:
            1 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:

                There are no open Gerrit changes