gnome-shell/js
Carlos Garnacho 2709f6c102 popupMenu: Refactor focus and key management
With the presence of Clutter.grab(), this behaves differently enough
that needs some redoing. The larger difference is what actors are
eligible for handling events.

In the older code, a PopupMenuManager would ask the grabHelper to
capture events from all the stage, and selectively silence events
on any actor that is not the currently shown popup menu or the
"source" actor for any other popup in the group (i.e. those that
would pop up another menu).

But we don't want to just silence events, we want to emit the
correct set of crossing events when a popup menu is shown or closed,
this requires a backing ClutterGrab() on the currently shown menu.
Since the presence of a grab also affects the ability to have actors
outside the grab area to handle events, the PopupMenuManager now
must detect hovering and focus changes to other menu sources by
handling events on the grabbed popup itself.

Redo the grabbing over Main.pushModal/popModal (i.e. ClutterGrab,
plus keyboard focus restoration) and a captured event handler on
the currently shown menu, to make PopupMenuManager behave as it
is expected with this new kind of grabs.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2045>
2022-01-29 01:16:30 +01:00
..
dbusServices screencastService: Create directory if it doesn't exist 2022-01-14 18:42:47 +00:00
gdm loginDialog: Perform grab on the stage actor 2022-01-29 01:16:30 +01:00
misc cleanup: Use logical assignments 2022-01-25 15:21:16 +00:00
perf perf: Add basic run tests 2020-08-12 15:43:39 +00:00
portalHelper portalHelper: Replace Soup.URI with GLib.Uri 2021-08-25 01:54:07 +02:00
ui popupMenu: Refactor focus and key management 2022-01-29 01:16:30 +01:00
js-resources.gresource.xml gdm: Add AuthList control 2022-01-13 15:03:02 -05:00
meson.build extensions-app: Move Extensions app to new subproject 2020-03-27 23:33:30 +00:00
portal-resources.gresource.xml js: Remove unused files from resources 2020-03-09 13:18:48 +00:00