[webkit-changes] [WebKit/WebKit] 48d82b: [GTK] Consider keycode when activating application...

Michael Catanzaro noreply at github.com
Tue May 7 05:35:10 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: 48d82b12d119cf146e3c0127410fa6677581f2b7
      https://github.com/WebKit/WebKit/commit/48d82b12d119cf146e3c0127410fa6677581f2b7
  Author: Michael Catanzaro <mcatanzaro at redhat.com>
  Date:   2024-05-07 (Tue, 07 May 2024)

  Changed paths:
    M Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp

  Log Message:
  -----------
  [GTK] Consider keycode when activating application accelerators
https://bugs.webkit.org/show_bug.cgi?id=273780

Reviewed by Carlos Garcia Campos.

Since Epiphany 46, keyboard shortcuts no longer work when using
non-Latin keyboard layouts, like Ukranian or Hebrew. Currently we only
consider the keyval when activating application accelerators. We need to
consider the raw keycode as well. E.g. on a Hebrew keyboard pressing
Ctrl+א should open a new tab, because the same key is used for both א
and T.

Fortunately, GTK can do the hard work of deciding which accelerator to
activate for us. All we need to do is pass along the keycode.

(This bug was *sort of* a regression from 273922 at main. In practice, the
regression probably only affected Epiphany, because this codepath only
matters if the application allows the web view to process key events
before it allows its GtkWindow to do so. That has to be done manually.
Otherwise, this code will never be reached, because the GtkWindow would
have already determined the key event matches an accelerator and handled
it before the web view ever gets a chance to see it.)

* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseProcessAcceleratorsForKeyPressEvent):

Canonical link: https://commits.webkit.org/278456@main



To unsubscribe from these emails, change your notification settings at https://github.com/WebKit/WebKit/settings/notifications


More information about the webkit-changes mailing list