Skip to content

Instantly share code, notes, and snippets.

@liangqi
Last active February 21, 2024 09:31
Show Gist options
  • Save liangqi/cffcc564b7e8e6805ca9fc3a13b17d2f to your computer and use it in GitHub Desktop.
Save liangqi/cffcc564b7e8e6805ca9fc3a13b17d2f to your computer and use it in GitHub Desktop.

Revisions

  1. liangqi revised this gist Feb 21, 2024. 1 changed file with 4 additions and 2 deletions.
    6 changes: 4 additions & 2 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -1,5 +1,4 @@
    In qtwayland source repo, latest dev branch
    https://github.com/qt/qtwayland/

    $ git merge-base origin/dev origin/5.15
    76eda41dab9ddccf4c2a38d981c9b03bc7f051d0
    @@ -90,6 +89,9 @@ bf607843 Add client parameter for set_cursor
    0d18b84e Fix loading EGLStream client buffer integration in static build
    f7885bb4 New input method protocol for use with Qt clients
    314fd6db Use wl_surface.damage_buffer on the client side

    After a briefing check at the commits in the list, it looks like 314fd6db is the first one in 6, but not in 5.15 branch.

    af3976e5 Revert "Compositor: Warn and clean up when client hardware buffer integrations fail"
    1d086304 Add client test for hiding the toplevel parent of a popup
    ce06115d Add client test for touch down and motion in same frame
    @@ -224,4 +226,4 @@ da9bddc6 Enables semi-transparent clients in QWindow Compositor
    2e2fa369 Avoid killing clients with sigpipe when transfering clipboard data.
    2b857d4a Add QScreenOrientationChangeEvent and rotation support to wayland client
    9b3e9351 Prepare client-visibility transport
    2868281c Initial glsupport in qtcomp. It can now draw simple_client
    2868281c Initial glsupport in qtcomp. It can now draw simple_client
  2. liangqi created this gist Feb 21, 2024.
    227 changes: 227 additions & 0 deletions gistfile1.txt
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,227 @@
    In qtwayland source repo, latest dev branch
    https://github.com/qt/qtwayland/

    $ git merge-base origin/dev origin/5.15
    76eda41dab9ddccf4c2a38d981c9b03bc7f051d0

    $ git log --invert-grep --grep="5.15" --since=76eda41dab9ddccf4c2a38d981c9b03bc7f051d0 --oneline | grep client
    9bad0fc2 client: Support Xdg activation across shell surfaces
    fdb29f3f client: Fix xdg shell setting only a minimum size hint
    f61e39ac client: Switch qt-toplevel-drag to xdg-toplevel-drag
    9e1e6665 client: Clean up old registry on reconnect
    d6835870 client: Remove unused member variable in TextInputV3
    6d83cf94 client: Disable threaded GL on desktop NVIDIA
    8e3a9b88 client: Fix deletion of new queued shm buffers during reconnect
    91c75ebb client: Destroy window manager integration before display
    acce7bc4 client texture cleanup: fix crash in clean-up lambda
    f803f80c Disable client side decorations on Vulkan window
    c5aed5ae client: Avoid creating decorations in the render thread
    8811a78a client: Fix text-input set_cursor_rectangle coordinates
    c37824ee client: Fix window margin calculation
    36098d43 client: Do not constrain clients to size hints
    f87d0bf9 client: Clean up text input proxy object in textinputv3
    18166784 client: Clean up text input proxy object in textinputv2
    0afaafef client: If the window minimized state is requested do not forward other states
    a960d6e1 client: implement QWaylandCursor::size()
    de808b4e client: Use correct offset handling features for wl_surface version 5
    6fe83f60 client: Always clear queued buffer busy flag when resetting the window
    67c470b1 QWaylandSurface: client support wl_surface version 6
    393e7673 client: Provide seatname for multi-seat
    6b8a99af client: Implement QWheelEvent::inverted
    af481fc7 client: support Xdg Shell not_shown state
    89bda346 client: Port QWaylandInputDevice to support QT_NO_CONTEXTLESS_CONNECT
    38f5679d client: make drag and drop in same control works again
    6d24c829 client: Add path to manipulate popup positioning via hidden properties API
    a46133a3 client: Simplify toplevel exposure tracking
    f6dd435f client: Drop unused member variables
    1452c8d6 client: Wait for the compositor to send a fractional scale
    80a33595 client: Convert text/x-moz-urls to text/uri-list
    39a00394 client: Set queued buffer busy
    475b8e8d client: Make sure screens stay virtual siblings during reconnect
    1abc0c04 Do not generate the deprecated 'QtWaylandClient/qwaylandclientexport.h'
    0b47ed94 client: no need to update decoration when shutting down
    5a3d85a7 client: Fix variable names for QWaylandDisplay::GlobalHolder
    6c580d28 client: check nullptr before usage
    b6654730 client: Use nullptr instead of 0 in QWaylandDisplay
    c4d0e100 client: Move wayland globals into a holding struct
    22daca49 client: Fix crash on dnd updates after client facing drag ends
    d730fe13 client: initialize key repeat information
    5587deee client: Guard against client destruction in gestures
    40a27c26 client: Implement qt-toplevel-drag-v1
    b1cae06c client: Implement cursor_shape_v1
    21b5b6ed client: Clamp fractional scaling to be >= 1.0
    1a36613c client: Move device initialization to device constructor
    6a17d561 Forward active focus to clients immediately
    12121ac6 client: Cleanup CSD contentFBO on surface hide
    ae026d6a client: Unify margins handling
    34e3f7ec client: Utilize new handleWindowDevicePixelRatioChanged
    98587089 client: Force a roundtrip when an XdgOutput is not ready yet
    f0de6ff9 client: Attempt to request activate even if there's no focus window
    f8c8a06f client: Implement QNativeInterface::Private::QWaylandWindow
    5bae5deb compositor: Support touch interaction with client decorations
    35d82dca client: Allow resizing with touch input on client-side decorations
    1d133bf6 client: Respect initial size when only one component is set
    d35d759f Fix potential nullptr access in the compositor when killing clients
    487de472 client: Avoid protocol error with invalid min/max size
    6f1bacdd client: Mark return values as unused to suppress compiler warnings
    18168641 Fix: Access nullptr returned by QWaylandSurface::client()
    256c89e6 Compositor: Re-enable touch events for Wayland clients
    6d8e7567 Allow multiple client buffer integrations to initialize
    2aa3e55f client: add ScreenWindowGrabbing capability
    fcf4f2fc client: Avoid trying to read/cancel read if wl_display_read_events failed
    2f1b74e5 Also accept a client text-input extension registered too late
    00323844 Use opaque render list when client content is opaque
    62646d91 client: Simplify round trip behavior
    e68f0f05 Add client support for the text-input-unstable-v1 protocol
    cb6b2bce client: Add waitForFrameSync for Vulkan
    dff57914 client: Fix crash on shutdown on Mesa driver
    af8f8c33 add abstract class QWaylandTextInputInterface in client side
    fdd9569c client: emit QInputMethod::visibleChanged() for qt_text_input_method_v1
    0154d0b6 tests: support ivi-shell again in tst_client
    4825cf5b tests: port tst_client to use shared folder
    d1ea98ea Add explicit dependency to Libdrm::Libdrm for the client as well
    40036a1b Wayland client: use wl_keyboard to determine active state
    a0f59378 Wayland client: Don't applyConfigure for destroyed surface
    0c93bfd8 cmake: be more flexible when creating Wayland client and server extension headers
    d10d7bab Export wayland-egl client hwintegration
    22a9c2d6 client: Remove unused header file
    93058de8 client: Fix frame callback leak when window unexposed
    bf607843 Add client parameter for set_cursor
    0d18b84e Fix loading EGLStream client buffer integration in static build
    f7885bb4 New input method protocol for use with Qt clients
    314fd6db Use wl_surface.damage_buffer on the client side
    af3976e5 Revert "Compositor: Warn and clean up when client hardware buffer integrations fail"
    1d086304 Add client test for hiding the toplevel parent of a popup
    ce06115d Add client test for touch down and motion in same frame
    09474cdf Add client test for subsurface with hidden parent
    e7c9adcc Add basic client test for subsurfaces
    b148226e Compositor: Use logging category in egl client integration
    137966a6 Compositor: Warn and clean up when client hardware buffer integrations fail
    e306847c Add client test for clipboard when losing keyboard focus
    8f6c41e4 Mock client: Add missing include for QMap
    86a96007 Fix wrong target name for tst_client_fullscreenshellv1
    694c9625 Add client test for multi touch motion
    70217e58 Add client test for floating point touch
    813365f4 Add client test for floating point mouse press
    d0afb8ba Add client test for xdg-decoration-unstable-v1
    28c852df Fix race condition for client buffer integration initialization
    03ac8d67 xdg-shell v6 client test: use QTRY_COMPARE instead of QTRY_VERIFY
    812ca6b0 client: reimplement QPlatformIntegration::possibleKeys()
    4de344de client: rework xkb context/keymap/state handling
    3aedd012 client: rework input method handling
    eabdc86b Compositor: Fix incorrect texture size for client buffers when dpr > 1
    0ff8a6b1 Add client test for data device
    ca65a264 Compositor xdg-shell: Warn when clients supply invalid anchor rects
    657b6ce0 Fix black client windows when not using window decorations on NVIDIA
    280cc2be Fix flickering (black frames) of wayland clients on NVIDIA
    ddef100d Create a new type of mock compositor for client tests
    6d08990b Remove wayland-client.h include
    86625d60 Don't include wayland-client-core.h
    db2dc465 Compositor xdg-decoration: Fix crash when clients disconnect
    f4527f15 Add XdgOutput client support
    1eaac3fb Compositor: make XdgShellV6 reconfigure clients on mode-change
    17eb840b Compositor: make WlShell reconfigure clients on output geometry change
    7659732f Fix flakiness in xdg-shell v6 client tests
    7a6cecc9 brcm-egl: Add native resources handlers to the client integration
    887df9d4 xdg-shell-v5 client: Remove accidental qDebug
    f8a16e0e Remove waylandclient-private dependency from custom-extension example
    70344cd6 Add client-side tests for ivi-application
    0177295c Send configure events in shell-agnostic client tests
    1370438a Fix nullptr dereference in client tests
    f82bf9e2 Fix tst_client::windowScreen and tst_client::screens sometimes freezing
    53c5a267 Verify that the client supports the compositor removing outputs
    afde65de Test client side xdg shell v6
    792a7251 client: Set screen product information
    39033d83 Fix crash when starting clients
    2a47c836 Fix broken HEADERS list in client.pro
    542c6392 Add xdg_shell_v6 support for Qt clients
    7916eb86 Fix crash on client exit with popup
    61e2b73e Fix build of brcm-egl client
    93b69163 Add a QML client manual test
    2e44df5f Fix crash on client hide
    9b7a5b42 Fix crash on client exit
    972d1150 Also test touch in client events test
    d84c4a89 Add missing Q_DECL_OVERRIDEs to client classes.
    d9cef40e client: Always accept the DnD data offer
    25ac3b50 Don't use deprecated wl_client_add_object and wl_display_add_global
    ca7d9549 Make qwaylandclientexport public
    bfa66ccb Add QML api for client side extension.
    14f222a7 Don't send wl_output::enter if the client didn't bind to wl_output
    47202ee5 Simplify client-side API for Wayland extensions
    759822f3 Fix client xdg_surface not handling all states from configure event
    68c65ddf Link with the wayland-client library
    a78e3ff9 Send the right output position to clients
    68993c01 Add clients with the correct version
    80c92e40 Fix crash on client exit
    302d4ffb client: Remove the event thread
    07c7898c Add QWayland::shm object to client
    d8c9a537 Fix wl_buffer leak in the brcm-egl client integration
    1d5a45b1 Fix input devices leak in client
    17831792 Add client side support for media keys
    21a79834 Keep Surface's visibility is in sync between client and compositor.
    1239e62b Send done and scale events only when clients support wl_output >= 2
    dd699587 Fix copying text to non-qt clients
    0febf7c5 Allow client side input device customization
    32591524 Don't send the wrong physical size to clients
    a3471637 DataOffer not invalidated when client loses keyboard focus
    a6a288ec Fix crash of test client
    3a65f72f Indicate from the client buffer integration if decorations are supported
    58bc9a98 Make the test client more robust and make valgrind happy
    ca83fc46 Expose surface's client to QML
    1e3b3d62 Fix possible crash of the test client
    8d3962f6 Fix client tests
    56084175 Resolve build warning on client code
    ec43c89c Do not send auto repeat key events to the clients
    7ab464dc Flush the clients connection after sending the frame callbacks
    a9d9fa46 Compile ServerBuffer client example on desktop gl
    50f43a0c Fix the client behavior when showing or hiding a surface
    05076e4e Server Buffer example draws clients inverse on the x axis
    a578c280 Support that clients queue up more than three buffers.
    31f98154 Also link wayland-client, as we use bits from it.
    c9734e76 Include wayland-client with < and not "
    4df5d761 Add a size to the QWaylandServerBuffer on the client side
    b6713ec4 Make classes in client private
    b9ffcbc7 Adjust the location of the compositors clientbuffer integration plugins
    e2350c6a Remove compiler warnings in client.
    3a1ac7eb introduce HW integrations client plugins
    4e6e4783 Use the instealled headers in the public headers for client
    d250b714 Move wayland into a client directory not under the plugins src folder
    1a37f726 QtCompositor: Provide a way to update the clipboard on a client
    569be504 Remove code for EGL_WL_request_client_buffer_format.
    5a895b48 client test also needs compositor
    16edc0e2 Fixed build issue due to not finding "wayland-client.h".
    bbc20f04 Fixed client being blocked in xcomposite integrations.
    2f3de065 Send property to client according to it's parameter
    5cb15939 Draw client side decoration actions with pixmaps
    5d188139 Fix scroll wheel behavior for Wayland clients
    744f8ce5 Cleanup for Wayland client cursors
    2c84a9c0 Fixed modifiers not working for non-Qt wayland clients.
    c999bcb9 Made qtwayland compositor handle plain wayland clients.
    9b3c5574 Prevent crashing the compositor when the client wants to unset the cursor.
    1159a73f Destroy shell surfaces on client side
    463fb9eb Fix global coordinate translation in clients
    2a5d11c1 Rebase Add-thread-affinity-to-wayland-clients.patch
    39d5fb4e Fixed client side issues due to threading bugs.
    91982e55 Fix clipboard crash in clients with weston
    3836847a Implemented graceful quitting of clients.
    9070ed48 Pass device capabilities to client in the touch extension
    46d881d5 Fixed mockshell error in client auto test
    6dbc6e18 Introduced WaylandClient API to keep track of clients.
    37c36d46 Prevented crash and missing animation for shm clients.
    68e266b3 Added missing header for client autotest.
    609b8a18 Added testing of key events to client auto test.
    d458c319 Implement selection offers from compositor to clients.
    d5837ccc Remove unnecessary client list generation in Compositor
    e6d9b6cd Make sure that subSurface extension handling in client is initialized
    e93a4d21 Replaced missed instance of Wayland::Surface->clientHandle()
    bdabd7cc Cleanup Wayland::Surface's client handle logic
    2c3d4fd8 Remove unused clientAdded signal in compositor.
    598b3a59 Make QtCompositor work with wayland-demo clients.
    ee1ba9e6 Destroy callback objects in the sync callback on client-side.
    c8518ea6 Fix Wayland touch position mapping on client side.
    cf24fc58 Add a very basic fallback for client-side key handling without xkb.
    da9bddc6 Enables semi-transparent clients in QWindow Compositor
    2e2fa369 Avoid killing clients with sigpipe when transfering clipboard data.
    2b857d4a Add QScreenOrientationChangeEvent and rotation support to wayland client
    9b3e9351 Prepare client-visibility transport
    2868281c Initial glsupport in qtcomp. It can now draw simple_client