xserver-multidpi/hw/xwayland
Olivier Fourdan 66da95a172 xwayland: Do not discard frame callbacks on allow commits
Currently, when a X11 client (usually the X11 window manager from a
Wayland compositor) changes the value of the X11 property
`_XWAYLAND_ALLOW_COMMITS` from `false` to `true`, all pending frame
callbacks on the window are discarded so that the commit occurs
immediately.

Weston uses that mechanism to prevent the content of the window from
showing before it's ready when mapping the window initially, but
discarding the pending frame callbacks has no effect on the initial
mapping of the X11 window since at that point there cannot be any frame
callback on a surface which hasn't been committed yet anyway.

However, discarding pending frame callbacks can be problematic if we
were to use the same `_XWAYLAND_ALLOW_COMMITS` mechanism to prevent
damages to be posted before the X11 toplevel is updated completely
(including the window decorations from the X11 window manager).

Remove the portion of code discarding the pending frame callback,
Xwayland should always wait for a pending frame callback if there's one
before posting new damages.

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
https://gitlab.freedesktop.org/xorg/xserver/merge_requests/333
2019-11-19 09:56:10 +00:00
..
.gitignore xwayland: Add wp_viewport wayland extension support 2019-10-12 12:19:14 +02:00
drm.xml wayland: Sync drm.xml with Mesa 2017-07-05 10:13:04 -04:00
Makefile.am xwayland: Add wp_viewport wayland extension support 2019-10-12 12:19:14 +02:00
meson.build xwayland: Add wp_viewport wayland extension support 2019-10-12 12:19:14 +02:00
xwayland-cursor.c xwayland: Use buffer_damage instead of surface damage if available 2019-10-12 12:19:14 +02:00
xwayland-cvt.c xwayland: Add hack for FWXGA resolution #99574 2017-02-08 12:32:16 -05:00
xwayland-glamor-eglstream.c xwayland/eglstream: Fix order of calloc() args 2019-11-08 10:54:44 +01:00
xwayland-glamor-gbm.c xwayland/glamor-gbm: Use calloc() 2019-11-08 10:54:48 +01:00
xwayland-glamor-xv.c xwayland: use the lowercase xnf.*alloc API 2017-09-06 08:56:39 +10:00
xwayland-glamor.c glamor/xwayland: Define EGL_NO_X11 2019-11-04 20:49:33 +01:00
xwayland-glx.c glamor/xwayland: Define EGL_NO_X11 2019-11-04 20:49:33 +01:00
xwayland-input.c xwayland: Add support for randr-resolution change emulation using viewport 2019-10-12 12:19:14 +02:00
xwayland-output.c xserver: Fix a typo 2019-10-16 18:57:31 +00:00
xwayland-present.c xwayland: Use buffer_damage instead of surface damage if available 2019-10-12 12:19:14 +02:00
xwayland-shm.c xwayland/shm: Use calloc() 2019-11-08 10:54:52 +01:00
xwayland-vidmode.c xwayland: Add vidmode mode changing emulation support 2019-10-12 12:19:14 +02:00
xwayland.c xwayland: Do not discard frame callbacks on allow commits 2019-11-19 09:56:10 +00:00
xwayland.h xwayland: Cosmetic, fix indentation 2019-11-08 10:54:55 +01:00