WaylandKeyboard: Handle key repeat state [chromium/src : main]

0 views
Skip to first unread message

AbdAlRahman Gad (Gerrit)

unread,
Sep 22, 2025, 8:21:05 AMSep 22
to Orko Garai, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
Attention needed from Max Ihlenfeldt and Orko Garai

AbdAlRahman Gad added 1 comment

Patchset-level comments
Open in Gerrit

Related details

Attention is currently required from:
  • Max Ihlenfeldt
  • Orko Garai
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
Gerrit-Change-Number: 6973437
Gerrit-PatchSet: 2
Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
Gerrit-Reviewer: Orko Garai <or...@igalia.com>
Gerrit-Attention: Orko Garai <or...@igalia.com>
Gerrit-Attention: Max Ihlenfeldt <m...@igalia.com>
Gerrit-Comment-Date: Mon, 22 Sep 2025 12:20:34 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

AbdAlRahman Gad (Gerrit)

unread,
Sep 22, 2025, 8:28:22 AMSep 22
to Orko Garai, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
Attention needed from Max Ihlenfeldt and Orko Garai

AbdAlRahman Gad added 1 comment

Patchset-level comments
AbdAlRahman Gad . unresolved

When `WL_KEYBOARD_KEY_STATE_REPEATED` is sent, do we need to send `DispatchKey` with `repeat` is `true` so that `EF_IS_REPEAT` flag is set?

I read the docs for the flags but couldn't figure out if I should set `repeat` or not: https://source.chromium.org/chromium/chromium/src/+/main:ui/events/event.h;l=783;drc=717fed8880afe2cba710d198019b9fbf25a9c4e7

Open in Gerrit

Related details

Attention is currently required from:
  • Max Ihlenfeldt
  • Orko Garai
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
    Gerrit-Change-Number: 6973437
    Gerrit-PatchSet: 2
    Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
    Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
    Gerrit-Reviewer: Orko Garai <or...@igalia.com>
    Gerrit-Attention: Orko Garai <or...@igalia.com>
    Gerrit-Attention: Max Ihlenfeldt <m...@igalia.com>
    Gerrit-Comment-Date: Mon, 22 Sep 2025 12:27:54 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Max Ihlenfeldt (Gerrit)

    unread,
    Sep 22, 2025, 11:11:02 AMSep 22
    to AbdAlRahman Gad, Orko Garai, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
    Attention needed from AbdAlRahman Gad and Orko Garai

    Max Ihlenfeldt added 2 comments

    Patchset-level comments
    AbdAlRahman Gad . unresolved

    When `WL_KEYBOARD_KEY_STATE_REPEATED` is sent, do we need to send `DispatchKey` with `repeat` is `true` so that `EF_IS_REPEAT` flag is set?

    I read the docs for the flags but couldn't figure out if I should set `repeat` or not: https://source.chromium.org/chromium/chromium/src/+/main:ui/events/event.h;l=783;drc=717fed8880afe2cba710d198019b9fbf25a9c4e7

    Max Ihlenfeldt

    Please check what flags `EventAutoRepeatHandler` sets on the events it emits.

    File ui/ozone/platform/wayland/host/wayland_keyboard.cc
    Line 402, Patchset 2 (Latest): auto_repeat_handler_.IsAutoRepeatEnabled()) {
    Max Ihlenfeldt . unresolved

    I think we need to handle two cases in this class:

    1. client-side key repeat is in use, i.e. we receive a `wl_keyboard.repeat_info` event with `rate != 0`.
    2. compositor-side key repeat is in use, i.e. we receive a `wl_keyboard.repeat_info` event with `rate == 0`.

    For (1), we want to use `auto_repeat_handler_` with the provided configuration. For (2), we want to disable using `auto_repeat_handler_` and instead emit events in this method (`ProcessKey()`) when we get an event with the `repeated` state.

    `WaylandKeyboard::OnRepeatInfo()` already does most of this, it seems to me the only missing thing is correctly handling repeat events in this method. We should also include a check to ignore repeat events (maybe with a warning log) if `auto_repeat_handler_` is enabled.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • AbdAlRahman Gad
    • Orko Garai
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
    Gerrit-Change-Number: 6973437
    Gerrit-PatchSet: 2
    Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
    Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
    Gerrit-Reviewer: Orko Garai <or...@igalia.com>
    Gerrit-Attention: Orko Garai <or...@igalia.com>
    Gerrit-Attention: AbdAlRahman Gad <ag...@igalia.com>
    Gerrit-Comment-Date: Mon, 22 Sep 2025 15:10:45 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: AbdAlRahman Gad <ag...@igalia.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Max Ihlenfeldt (Gerrit)

    unread,
    Sep 22, 2025, 11:16:32 AMSep 22
    to AbdAlRahman Gad, Orko Garai, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
    Attention needed from AbdAlRahman Gad and Orko Garai

    Max Ihlenfeldt added 1 comment

    File ui/ozone/platform/wayland/host/wayland_keyboard.cc
    Line 402, Patchset 2 (Latest): auto_repeat_handler_.IsAutoRepeatEnabled()) {
    Max Ihlenfeldt . unresolved

    I think we need to handle two cases in this class:

    1. client-side key repeat is in use, i.e. we receive a `wl_keyboard.repeat_info` event with `rate != 0`.
    2. compositor-side key repeat is in use, i.e. we receive a `wl_keyboard.repeat_info` event with `rate == 0`.

    For (1), we want to use `auto_repeat_handler_` with the provided configuration. For (2), we want to disable using `auto_repeat_handler_` and instead emit events in this method (`ProcessKey()`) when we get an event with the `repeated` state.

    `WaylandKeyboard::OnRepeatInfo()` already does most of this, it seems to me the only missing thing is correctly handling repeat events in this method. We should also include a check to ignore repeat events (maybe with a warning log) if `auto_repeat_handler_` is enabled.

    Max Ihlenfeldt

    Ugh, please excuse my Monday brain and disregard almost everything of the above comment. Please add a `LOG(WARNING)` before the return here.

    Gerrit-Comment-Date: Mon, 22 Sep 2025 15:16:19 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Max Ihlenfeldt <m...@igalia.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Orko Garai (Gerrit)

    unread,
    Sep 22, 2025, 1:15:25 PMSep 22
    to AbdAlRahman Gad, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
    Attention needed from AbdAlRahman Gad

    Orko Garai voted and added 1 comment

    Votes added by Orko Garai

    Code-Review+1

    1 comment

    Patchset-level comments
    Orko Garai . resolved

    lgtm % nit about the warning log suggested by max

    Open in Gerrit

    Related details

    Attention is currently required from:
    • AbdAlRahman Gad
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
    Gerrit-Change-Number: 6973437
    Gerrit-PatchSet: 2
    Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
    Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
    Gerrit-Reviewer: Orko Garai <or...@igalia.com>
    Gerrit-Attention: AbdAlRahman Gad <ag...@igalia.com>
    Gerrit-Comment-Date: Mon, 22 Sep 2025 17:15:19 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    AbdAlRahman Gad (Gerrit)

    unread,
    Sep 24, 2025, 3:43:47 AM (13 days ago) Sep 24
    to Chromium LUCI CQ, Orko Garai, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
    Attention needed from Max Ihlenfeldt and Orko Garai

    AbdAlRahman Gad added 3 comments

    Patchset-level comments
    File-level comment, Patchset 2:
    AbdAlRahman Gad . resolved

    When `WL_KEYBOARD_KEY_STATE_REPEATED` is sent, do we need to send `DispatchKey` with `repeat` is `true` so that `EF_IS_REPEAT` flag is set?

    I read the docs for the flags but couldn't figure out if I should set `repeat` or not: https://source.chromium.org/chromium/chromium/src/+/main:ui/events/event.h;l=783;drc=717fed8880afe2cba710d198019b9fbf25a9c4e7

    Max Ihlenfeldt

    Please check what flags `EventAutoRepeatHandler` sets on the events it emits.

    File-level comment, Patchset 4 (Latest):
    AbdAlRahman Gad . unresolved

    1. The case when `repeat == 0` works correctly and the repeat rate will be controlled by the compositor.

    2. But when `repat != 0` on my machine, the nested `KWin` session will send this:

    ```c
    [3520410.143] {Default Queue} wl_keyboard#28.repeat_info(31, 500)
    [3520410.332] wl_keyboard#41.repeat_info(0, 500)
    ```

    • The auto repeat is not enabled: `auto_repeat_handler_.IsAutoRepeatEnabled() = 0`
    • But the keys are going to be repeated at higher rate like the one in the settings.

    I think this doesn't violate the protocol but it's kinda weird.

    File ui/ozone/platform/wayland/host/wayland_keyboard.cc
    Line 402, Patchset 2: auto_repeat_handler_.IsAutoRepeatEnabled()) {
    Max Ihlenfeldt . resolved

    I think we need to handle two cases in this class:

    1. client-side key repeat is in use, i.e. we receive a `wl_keyboard.repeat_info` event with `rate != 0`.
    2. compositor-side key repeat is in use, i.e. we receive a `wl_keyboard.repeat_info` event with `rate == 0`.

    For (1), we want to use `auto_repeat_handler_` with the provided configuration. For (2), we want to disable using `auto_repeat_handler_` and instead emit events in this method (`ProcessKey()`) when we get an event with the `repeated` state.

    `WaylandKeyboard::OnRepeatInfo()` already does most of this, it seems to me the only missing thing is correctly handling repeat events in this method. We should also include a check to ignore repeat events (maybe with a warning log) if `auto_repeat_handler_` is enabled.

    Max Ihlenfeldt

    Ugh, please excuse my Monday brain and disregard almost everything of the above comment. Please add a `LOG(WARNING)` before the return here.

    AbdAlRahman Gad

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Max Ihlenfeldt
    • Orko Garai
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
    Gerrit-Change-Number: 6973437
    Gerrit-PatchSet: 4
    Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
    Gerrit-Reviewer: AbdAlRahman Gad <ag...@igalia.com>
    Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
    Gerrit-Reviewer: Orko Garai <or...@igalia.com>
    Gerrit-Attention: Orko Garai <or...@igalia.com>
    Gerrit-Attention: Max Ihlenfeldt <m...@igalia.com>
    Gerrit-Comment-Date: Wed, 24 Sep 2025 07:43:35 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: AbdAlRahman Gad <ag...@igalia.com>
    Comment-In-Reply-To: Max Ihlenfeldt <m...@igalia.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Orko Garai (Gerrit)

    unread,
    Sep 24, 2025, 1:14:30 PM (13 days ago) Sep 24
    to AbdAlRahman Gad, Chromium LUCI CQ, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
    Attention needed from AbdAlRahman Gad and Max Ihlenfeldt

    Orko Garai voted and added 1 comment

    Votes added by Orko Garai

    Code-Review+1

    1 comment

    Patchset-level comments
    Open in Gerrit

    Related details

    Attention is currently required from:
    • AbdAlRahman Gad
    • Max Ihlenfeldt
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
    Gerrit-Change-Number: 6973437
    Gerrit-PatchSet: 4
    Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
    Gerrit-Reviewer: AbdAlRahman Gad <ag...@igalia.com>
    Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
    Gerrit-Reviewer: Orko Garai <or...@igalia.com>
    Gerrit-Attention: AbdAlRahman Gad <ag...@igalia.com>
    Gerrit-Attention: Max Ihlenfeldt <m...@igalia.com>
    Gerrit-Comment-Date: Wed, 24 Sep 2025 17:14:25 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Max Ihlenfeldt (Gerrit)

    unread,
    Sep 29, 2025, 8:50:09 AM (8 days ago) Sep 29
    to AbdAlRahman Gad, Orko Garai, Chromium LUCI CQ, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
    Attention needed from AbdAlRahman Gad

    Max Ihlenfeldt voted and added 3 comments

    Votes added by Max Ihlenfeldt

    Code-Review+1

    3 comments

    Patchset-level comments
    AbdAlRahman Gad . unresolved

    1. The case when `repeat == 0` works correctly and the repeat rate will be controlled by the compositor.

    2. But when `repat != 0` on my machine, the nested `KWin` session will send this:

    ```c
    [3520410.143] {Default Queue} wl_keyboard#28.repeat_info(31, 500)
    [3520410.332] wl_keyboard#41.repeat_info(0, 500)
    ```

    • The auto repeat is not enabled: `auto_repeat_handler_.IsAutoRepeatEnabled() = 0`
    • But the keys are going to be repeated at higher rate like the one in the settings.

    I think this doesn't violate the protocol but it's kinda weird.

    Max Ihlenfeldt

    It looks like there are two event queues, and one is probably the one used by GTK? So ozone/wayland might be the one receiving the second event with a rate of 0, and thus correctly disable `auto_repeat_handler_`. Maybe Orko can give some additional context on whether my theory makes sense.

    Max Ihlenfeldt . resolved

    lgtm % nit

    File ui/ozone/platform/wayland/host/wayland_keyboard.cc
    Line 430, Patchset 4 (Latest): state == WL_KEYBOARD_KEY_STATE_REPEATED ? true : false /*repeat*/,
    Max Ihlenfeldt . unresolved

    nit: This can be simplified to just `state == WL_KEYBOARD_KEY_STATE_REPEATED` without the ternary operator.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • AbdAlRahman Gad
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
      Gerrit-Change-Number: 6973437
      Gerrit-PatchSet: 4
      Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
      Gerrit-Reviewer: AbdAlRahman Gad <ag...@igalia.com>
      Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
      Gerrit-Reviewer: Orko Garai <or...@igalia.com>
      Gerrit-Attention: AbdAlRahman Gad <ag...@igalia.com>
      Gerrit-Comment-Date: Mon, 29 Sep 2025 12:49:27 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: AbdAlRahman Gad <ag...@igalia.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      AbdAlRahman Gad (Gerrit)

      unread,
      Sep 30, 2025, 6:33:20 PM (7 days ago) Sep 30
      to Orko Garai, Chromium LUCI CQ, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
      Attention needed from Orko Garai

      AbdAlRahman Gad added 2 comments

      Patchset-level comments
      AbdAlRahman Gad . unresolved

      1. The case when `repeat == 0` works correctly and the repeat rate will be controlled by the compositor.

      2. But when `repat != 0` on my machine, the nested `KWin` session will send this:

      ```c
      [3520410.143] {Default Queue} wl_keyboard#28.repeat_info(31, 500)
      [3520410.332] wl_keyboard#41.repeat_info(0, 500)
      ```

      • The auto repeat is not enabled: `auto_repeat_handler_.IsAutoRepeatEnabled() = 0`
      • But the keys are going to be repeated at higher rate like the one in the settings.

      I think this doesn't violate the protocol but it's kinda weird.

      Max Ihlenfeldt

      It looks like there are two event queues, and one is probably the one used by GTK? So ozone/wayland might be the one receiving the second event with a rate of 0, and thus correctly disable `auto_repeat_handler_`. Maybe Orko can give some additional context on whether my theory makes sense.

      AbdAlRahman Gad

      @or...@igalia.com Could you please take a look at this comment?

      File ui/ozone/platform/wayland/host/wayland_keyboard.cc
      Line 430, Patchset 4: state == WL_KEYBOARD_KEY_STATE_REPEATED ? true : false /*repeat*/,
      Max Ihlenfeldt . resolved

      nit: This can be simplified to just `state == WL_KEYBOARD_KEY_STATE_REPEATED` without the ternary operator.

      AbdAlRahman Gad

      Done

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Orko Garai
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement is not satisfiedCode-Review
        • requirement is not satisfiedNo-Unresolved-Comments
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
        Gerrit-Change-Number: 6973437
        Gerrit-PatchSet: 5
        Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
        Gerrit-Reviewer: AbdAlRahman Gad <ag...@igalia.com>
        Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
        Gerrit-Reviewer: Orko Garai <or...@igalia.com>
        Gerrit-Attention: Orko Garai <or...@igalia.com>
        Gerrit-Comment-Date: Tue, 30 Sep 2025 22:33:03 +0000
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Orko Garai (Gerrit)

        unread,
        Oct 4, 2025, 12:07:59 AM (3 days ago) Oct 4
        to AbdAlRahman Gad, Chromium LUCI CQ, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
        Attention needed from AbdAlRahman Gad

        Orko Garai added 1 comment

        Patchset-level comments
        AbdAlRahman Gad . unresolved

        1. The case when `repeat == 0` works correctly and the repeat rate will be controlled by the compositor.

        2. But when `repat != 0` on my machine, the nested `KWin` session will send this:

        ```c
        [3520410.143] {Default Queue} wl_keyboard#28.repeat_info(31, 500)
        [3520410.332] wl_keyboard#41.repeat_info(0, 500)
        ```

        • The auto repeat is not enabled: `auto_repeat_handler_.IsAutoRepeatEnabled() = 0`
        • But the keys are going to be repeated at higher rate like the one in the settings.

        I think this doesn't violate the protocol but it's kinda weird.

        Max Ihlenfeldt

        It looks like there are two event queues, and one is probably the one used by GTK? So ozone/wayland might be the one receiving the second event with a rate of 0, and thus correctly disable `auto_repeat_handler_`. Maybe Orko can give some additional context on whether my theory makes sense.

        AbdAlRahman Gad

        @or...@igalia.com Could you please take a look at this comment?

        Orko Garai

        Yes there are 2 queues. One is the default one, which we don't use. We use our own queue created [in WaylandConnection](https://source.chromium.org/chromium/chromium/src/+/main:ui/ozone/platform/wayland/host/wayland_connection.cc;l=210;drc=1e665a659d8fac8e71a0263132d9dc9cdabb2fc6;bpv=0;bpt=0). So we can ignore the "Default Queue".

        I found some additional context [here](https://wayland.freedesktop.org/docs/html/apb.html#Client-classwl__display):

        A wl_display has at least one event queue, called the default queue. Clients can create additional event queues with wl_display_create_queue()

        Open in Gerrit

        Related details

        Attention is currently required from:
        • AbdAlRahman Gad
        Submit Requirements:
          • requirement satisfiedCode-Coverage
          • requirement satisfiedCode-Owners
          • requirement is not satisfiedCode-Review
          • requirement is not satisfiedNo-Unresolved-Comments
          • requirement is not satisfiedReview-Enforcement
          Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
          Gerrit-MessageType: comment
          Gerrit-Project: chromium/src
          Gerrit-Branch: main
          Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
          Gerrit-Change-Number: 6973437
          Gerrit-PatchSet: 5
          Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
          Gerrit-Reviewer: AbdAlRahman Gad <ag...@igalia.com>
          Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
          Gerrit-Reviewer: Orko Garai <or...@igalia.com>
          Gerrit-Attention: AbdAlRahman Gad <ag...@igalia.com>
          Gerrit-Comment-Date: Sat, 04 Oct 2025 04:07:55 +0000
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          AbdAlRahman Gad (Gerrit)

          unread,
          Oct 6, 2025, 5:27:39 AM (yesterday) Oct 6
          to Orko Garai, Chromium LUCI CQ, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
          Attention needed from Max Ihlenfeldt and Orko Garai

          AbdAlRahman Gad added 1 comment

          Patchset-level comments
          File-level comment, Patchset 4:
          AbdAlRahman Gad . resolved

          1. The case when `repeat == 0` works correctly and the repeat rate will be controlled by the compositor.

          2. But when `repat != 0` on my machine, the nested `KWin` session will send this:

          ```c
          [3520410.143] {Default Queue} wl_keyboard#28.repeat_info(31, 500)
          [3520410.332] wl_keyboard#41.repeat_info(0, 500)
          ```

          • The auto repeat is not enabled: `auto_repeat_handler_.IsAutoRepeatEnabled() = 0`
          • But the keys are going to be repeated at higher rate like the one in the settings.

          I think this doesn't violate the protocol but it's kinda weird.

          Max Ihlenfeldt

          It looks like there are two event queues, and one is probably the one used by GTK? So ozone/wayland might be the one receiving the second event with a rate of 0, and thus correctly disable `auto_repeat_handler_`. Maybe Orko can give some additional context on whether my theory makes sense.

          AbdAlRahman Gad

          @or...@igalia.com Could you please take a look at this comment?

          Orko Garai

          Yes there are 2 queues. One is the default one, which we don't use. We use our own queue created [in WaylandConnection](https://source.chromium.org/chromium/chromium/src/+/main:ui/ozone/platform/wayland/host/wayland_connection.cc;l=210;drc=1e665a659d8fac8e71a0263132d9dc9cdabb2fc6;bpv=0;bpt=0). So we can ignore the "Default Queue".

          I found some additional context [here](https://wayland.freedesktop.org/docs/html/apb.html#Client-classwl__display):

          A wl_display has at least one event queue, called the default queue. Clients can create additional event queues with wl_display_create_queue()

          AbdAlRahman Gad

          Thanks, I think this makes the CL ready for review. Let me know if I misunderstood anything or if we need to change something.

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Max Ihlenfeldt
          • Orko Garai
          Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement satisfiedCode-Owners
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
            Gerrit-Change-Number: 6973437
            Gerrit-PatchSet: 5
            Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
            Gerrit-Reviewer: AbdAlRahman Gad <ag...@igalia.com>
            Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
            Gerrit-Reviewer: Orko Garai <or...@igalia.com>
            Gerrit-Attention: Orko Garai <or...@igalia.com>
            Gerrit-Attention: Max Ihlenfeldt <m...@igalia.com>
            Gerrit-Comment-Date: Mon, 06 Oct 2025 09:27:23 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            Comment-In-Reply-To: Orko Garai <or...@igalia.com>
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Max Ihlenfeldt (Gerrit)

            unread,
            Oct 6, 2025, 7:52:10 AM (yesterday) Oct 6
            to AbdAlRahman Gad, Orko Garai, Chromium LUCI CQ, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
            Attention needed from AbdAlRahman Gad and Orko Garai

            Max Ihlenfeldt voted and added 1 comment

            Votes added by Max Ihlenfeldt

            Code-Review+1

            1 comment

            Patchset-level comments
            AbdAlRahman Gad . resolved

            1. The case when `repeat == 0` works correctly and the repeat rate will be controlled by the compositor.

            2. But when `repat != 0` on my machine, the nested `KWin` session will send this:

            ```c
            [3520410.143] {Default Queue} wl_keyboard#28.repeat_info(31, 500)
            [3520410.332] wl_keyboard#41.repeat_info(0, 500)
            ```

            • The auto repeat is not enabled: `auto_repeat_handler_.IsAutoRepeatEnabled() = 0`
            • But the keys are going to be repeated at higher rate like the one in the settings.

            I think this doesn't violate the protocol but it's kinda weird.

            Max Ihlenfeldt

            It looks like there are two event queues, and one is probably the one used by GTK? So ozone/wayland might be the one receiving the second event with a rate of 0, and thus correctly disable `auto_repeat_handler_`. Maybe Orko can give some additional context on whether my theory makes sense.

            AbdAlRahman Gad

            @or...@igalia.com Could you please take a look at this comment?

            Orko Garai

            Yes there are 2 queues. One is the default one, which we don't use. We use our own queue created [in WaylandConnection](https://source.chromium.org/chromium/chromium/src/+/main:ui/ozone/platform/wayland/host/wayland_connection.cc;l=210;drc=1e665a659d8fac8e71a0263132d9dc9cdabb2fc6;bpv=0;bpt=0). So we can ignore the "Default Queue".

            I found some additional context [here](https://wayland.freedesktop.org/docs/html/apb.html#Client-classwl__display):

            A wl_display has at least one event queue, called the default queue. Clients can create additional event queues with wl_display_create_queue()

            AbdAlRahman Gad

            Thanks, I think this makes the CL ready for review. Let me know if I misunderstood anything or if we need to change something.

            Max Ihlenfeldt

            Thanks Orko for confirming. Agreed, lgtm!

            Open in Gerrit

            Related details

            Attention is currently required from:
            • AbdAlRahman Gad
            • Orko Garai
            Submit Requirements:
            • requirement satisfiedCode-Coverage
            • requirement satisfiedCode-Owners
            • requirement is not satisfiedCode-Review
            • requirement is not satisfiedReview-Enforcement
            Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
            Gerrit-MessageType: comment
            Gerrit-Project: chromium/src
            Gerrit-Branch: main
            Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
            Gerrit-Change-Number: 6973437
            Gerrit-PatchSet: 5
            Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
            Gerrit-Reviewer: AbdAlRahman Gad <ag...@igalia.com>
            Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
            Gerrit-Reviewer: Orko Garai <or...@igalia.com>
            Gerrit-Attention: Orko Garai <or...@igalia.com>
            Gerrit-Attention: AbdAlRahman Gad <ag...@igalia.com>
            Gerrit-Comment-Date: Mon, 06 Oct 2025 11:51:57 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Orko Garai (Gerrit)

            unread,
            Oct 6, 2025, 9:06:30 AM (yesterday) Oct 6
            to AbdAlRahman Gad, Chromium LUCI CQ, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org
            Attention needed from AbdAlRahman Gad

            Orko Garai voted Code-Review+1

            Code-Review+1
            Open in Gerrit

            Related details

            Attention is currently required from:
            • AbdAlRahman Gad
            Submit Requirements:
              • requirement satisfiedCode-Coverage
              • requirement satisfiedCode-Owners
              • requirement satisfiedCode-Review
              • requirement satisfiedReview-Enforcement
              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
              Gerrit-MessageType: comment
              Gerrit-Project: chromium/src
              Gerrit-Branch: main
              Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
              Gerrit-Change-Number: 6973437
              Gerrit-PatchSet: 5
              Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
              Gerrit-Reviewer: AbdAlRahman Gad <ag...@igalia.com>
              Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
              Gerrit-Reviewer: Orko Garai <or...@igalia.com>
              Gerrit-Attention: AbdAlRahman Gad <ag...@igalia.com>
              Gerrit-Comment-Date: Mon, 06 Oct 2025 13:06:22 +0000
              Gerrit-HasComments: No
              Gerrit-Has-Labels: Yes
              satisfied_requirement
              open
              diffy

              AbdAlRahman Gad (Gerrit)

              unread,
              Oct 6, 2025, 9:11:25 AM (yesterday) Oct 6
              to Orko Garai, Chromium LUCI CQ, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org

              AbdAlRahman Gad voted Commit-Queue+2

              Commit-Queue+2
              Open in Gerrit

              Related details

              Attention set is empty
              Submit Requirements:
              • requirement satisfiedCode-Coverage
              • requirement satisfiedCode-Owners
              • requirement satisfiedCode-Review
              • requirement satisfiedReview-Enforcement
              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
              Gerrit-MessageType: comment
              Gerrit-Project: chromium/src
              Gerrit-Branch: main
              Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
              Gerrit-Change-Number: 6973437
              Gerrit-PatchSet: 5
              Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
              Gerrit-Reviewer: AbdAlRahman Gad <ag...@igalia.com>
              Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
              Gerrit-Reviewer: Orko Garai <or...@igalia.com>
              Gerrit-Comment-Date: Mon, 06 Oct 2025 13:11:12 +0000
              Gerrit-HasComments: No
              Gerrit-Has-Labels: Yes
              satisfied_requirement
              open
              diffy

              Chromium LUCI CQ (Gerrit)

              unread,
              Oct 6, 2025, 10:05:15 AM (yesterday) Oct 6
              to AbdAlRahman Gad, Orko Garai, AyeAye, chromium...@chromium.org, max+watc...@igalia.com, nickdiego+wa...@igalia.com, ozone-...@chromium.org

              Chromium LUCI CQ submitted the change

              Change information

              Commit message:
              WaylandKeyboard: Handle key repeat state

              - bump wayland version to 1.24.0
              Bug: 369103602
              Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
              Reviewed-by: Orko Garai <or...@igalia.com>
              Commit-Queue: AbdAlRahman Gad <ag...@igalia.com>
              Reviewed-by: Max Ihlenfeldt <m...@igalia.com>
              Cr-Commit-Position: refs/heads/main@{#1525575}
              Files:
              • M DEPS
              • M third_party/wayland/README.chromium
              • M third_party/wayland/include/config.h
              • M third_party/wayland/include/src/wayland-version.h
              • M third_party/wayland/src
              • M third_party/wayland/wayland_version.gni
              • M ui/ozone/platform/wayland/host/wayland_keyboard.cc
              • M ui/ozone/platform/wayland/host/wayland_pointer.cc
              • M ui/ozone/platform/wayland/host/wayland_pointer.h
              • M ui/ozone/platform/wayland/host/wayland_seat.cc
              Change size: M
              Delta: 10 files changed, 41 insertions(+), 15 deletions(-)
              Branch: refs/heads/main
              Submit Requirements:
              • requirement satisfiedCode-Review: +1 by Max Ihlenfeldt, +1 by Orko Garai
              Open in Gerrit
              Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
              Gerrit-MessageType: merged
              Gerrit-Project: chromium/src
              Gerrit-Branch: main
              Gerrit-Change-Id: Iaafb055366495a20db019bc890434c6f2684ab1c
              Gerrit-Change-Number: 6973437
              Gerrit-PatchSet: 6
              Gerrit-Owner: AbdAlRahman Gad <ag...@igalia.com>
              Gerrit-Reviewer: AbdAlRahman Gad <ag...@igalia.com>
              Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
              Gerrit-Reviewer: Max Ihlenfeldt <m...@igalia.com>
              Gerrit-Reviewer: Orko Garai <or...@igalia.com>
              open
              diffy
              satisfied_requirement
              Reply all
              Reply to author
              Forward
              0 new messages