mutter:wip/carlosg/no-passive-grabs-on-wayland

Last commit made on 2019-05-24
Get this branch:
git clone -b wip/carlosg/no-passive-grabs-on-wayland https://git.launchpad.net/mutter

Branch merges

Branch information

Name:
wip/carlosg/no-passive-grabs-on-wayland
Repository:
lp:mutter

Recent commits

835a97a... by Carlos Garnacho

core: Ensure passive key grabs are only set up on X11

We don't strictly need it for wayland compositors, yet there are
paths where we try to trigger those passive grabs there. Just
skip those on the high level code (where "is it x11" decisions
are taken) like we do with passive button grabs.

9367cd2... by Carlos Garnacho

core: Shuffle wayland checks on passive button grabs

We used to bail out at the very bottom of it, but it seems better to
do that at a higher level so that we don't have to pass "invalid"
X11 data as arguments (e.g. None for windows, etc)

b1ea768... by Carlos Garnacho

wayland: Drop -terminate argument to Xwayland

This argument instructs Xwayland to exit when there are no further
client connections. However we eventually want to handle restarts
ourselves (where, notably, mutter's will be at least the last client
connection).

This behavior could also induce race conditions on startup with clients
that quickly open and close a display, which is a more pressing issue.

Also, add -noreset back (which was also removed in commit 054c25f693 that
added -terminate). We don't want to reset the X server to a pristine state
in that situation either.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/420

ea9d8a8... by Carlos Garnacho

wayland: Drop error trap

Code underneath seems to handle errors properly, or be x11-agnostic
entirely, this is apparently here to save a few XSync()s on X11. Just
drop this windowing dependent bit to make things cleaner.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/420

38432da... by Carlos Garnacho

compositor: Drop error trap

Code underneath seems to handle errors properly, and this is apparently
here to save a few XSync()s on X11. Just drop this windowing dependent
bit to make things cleaner.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/420

430f354... by Carlos Garnacho

wayland: Split Xwayland initialization in 2 steps

It is now separated into meta_xwayland_start(), which picks an unused
display and sets up the sockets, and meta_xwayland_init_xserver(), which
does the actual exec of Xwayland and MetaX11Display initialization.

This differentiation will be useful when Mutter is able to launch Xwayland
lazily, currently the former calls into the latter.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/420

1cf4279... by Carlos Garnacho

x11: Initialize GdkDisplay together with MetaX11Display

It's no longer a "singleton", since it might be closed and opened again.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/420

7713006... by Carlos Garnacho

x11: Unmanage X11 windows on MetaX11Display finalization

This used to be relied upon meta_display_close(), but MetaDisplay
and MetaX11Display lifetimes may be unrelated.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/420

465e131... by Carlos Garnacho

core: Add explicit init/shutdown_x11() MetaDisplay calls

The lifetime of MetaX11Display is still tied to MetaDisplay, but these
calls will be useful when it's actually affordable to decouple those.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/420

86de79c... by Carlos Garnacho

core: Untangle input focus management

In all places (including src/wayland) we tap into meta_x11_display* focus
API, which then calls meta_display* API. This relation is backwards, so
rework input focus management so it's the other way around.

We now have high-level meta_display_(un)set_input_focus functions, which
perform the backend-independent maintenance, and calls into the X11
functions where relevant. These functions are what callers should use.

https://gitlab.gnome.org/GNOME/mutter/merge_requests/420