xserver/hw/xwayland
Olivier Fourdan 6d00c2bc10 xwayland: attach new buffer from libdecor handlers
The configure handler in libdecor is triggered any time a new
configuration is received.

According to the documentation from libdecor, an application should
respond to that event by creating a suitable libdecor_state, and apply
it using libdecor_frame_commit().

So we ought to attach a new buffer matching the new size and commit
the Wayland surface.

The actual content of the window does not need to be explicitly
repainted, that occurs through the call to SetRootClip():

  xwl_output_set_mode_fixed()
  -> update_screen_size()
     -> SetRootClip()
        -> miHandleValidateExposures()
           -> miWindowExposures()
              -> miPaintWindow()

This fixes an issue with mutter where maximizing a window and then
switching to another window would sometimes resize the Xwayland window
back to its pre-maximized size, or with Weston where the Xwayland window
would initially show up black until the pointer moves to the window.

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Reviewed-by: Michel Dänzer <mdaenzer@redhat.com>
2023-07-27 09:58:51 +02:00
..
desktop xwayland: set the app_id and install a desktop launcher 2022-06-30 17:53:01 +02:00
man xwayland: add optional support for libdecor 2022-06-30 17:53:01 +02: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
meson.build xwayland: Add XTEST support using EIS 2023-06-26 13:19:19 +02:00
xwayland-cursor.c xwayland: Fix cursor color 2022-02-11 10:33:10 +01:00
xwayland-cursor.h xwayland: Add xwl_cursor_clear_frame_cb() 2021-10-25 12:05:42 +00:00
xwayland-cvt.c xwayland: Keep the CVT timings for non-standard modes 2023-05-15 10:33:21 +02:00
xwayland-cvt.h xwayland: Move Xwayland CVT declaration 2019-12-20 16:19:01 +01:00
xwayland-drm-lease.c xwayland: Clean up drm lease when terminating. #946 2023-07-17 08:25:39 +00:00
xwayland-drm-lease.h Xwayland: implement drm-lease-v1 2021-12-07 10:02:29 +00:00
xwayland-glamor-eglstream.c xwayland: Add get_drawable_modifiers implementation 2023-01-20 17:56:54 +00:00
xwayland-glamor-gbm.c xwayland/glamor/gbm: Use EGL_NO_CONTEXT with EGL_NATIVE_PIXMAP_KHR 2023-06-21 15:46:56 +00:00
xwayland-glamor-xv.c xwayland: Cleanup and remove `xwayland.h` 2019-12-20 16:19:01 +01:00
xwayland-glamor.c xwayland/glamor: Avoid implicit redirection with depth 32 parent windows 2023-07-20 10:15:15 +02:00
xwayland-glamor.h xwayland/glamor: Require equal pixmap depths in xwl_glamor_check_flip 2023-07-18 09:34:39 +00:00
xwayland-glx.c xwayland/glx: Mirror all EGLConfigs 2022-12-06 12:48:58 -05:00
xwayland-glx.h xwayland: Move Xwayland GLX declaration 2019-12-20 16:19:01 +01:00
xwayland-input.c xwayland: Fallback to plain XTEST if EI does not work 2023-06-26 13:19:19 +02:00
xwayland-input.h xwayland: hook up wl_pointer.axis_v120 events 2023-01-18 13:33:54 +10:00
xwayland-output.c xwayland: Make xwl_randr_add_modes_fixed() public API 2023-07-18 12:25:26 +02:00
xwayland-output.h xwayland: Make xwl_randr_add_modes_fixed() public API 2023-07-18 12:25:26 +02:00
xwayland-pixmap.c xwayland: Rename xwl_pixmap_cb → xwl_buffer_release_cb 2020-07-07 13:47:11 +00:00
xwayland-pixmap.h xwayland: Rename xwl_pixmap_cb → xwl_buffer_release_cb 2020-07-07 13:47:11 +00:00
xwayland-present.c xwayland/glamor: Require equal pixmap depths in xwl_glamor_check_flip 2023-07-18 09:34:39 +00:00
xwayland-present.h xwayland: add support for wp-tearing-control-v1 2023-06-19 12:19:35 +02:00
xwayland-screen.c xwayland: Use sensible defaults for rootful size 2023-07-18 12:25:26 +02:00
xwayland-screen.h xwayland/glamor: Avoid implicit redirection with depth 32 parent windows 2023-07-20 10:15:15 +02:00
xwayland-shm.c xwayland/shm: Avoid integer overflow on large pixmaps 2021-10-05 10:00:02 +00:00
xwayland-shm.h xwayland: Move SHM declarations to their own header 2019-12-20 16:19:01 +01:00
xwayland-types.h Xwayland: implement drm-lease-v1 2021-12-07 10:02:29 +00:00
xwayland-vidmode.c xwayland: add a fixed geometry size for rootful 2022-06-30 17:52:22 +02:00
xwayland-vidmode.h xwayland: Move Xwayland vidmode declaration 2019-12-20 16:19:01 +01:00
xwayland-window-buffers.c xwayland: Try the Xwayland glamor hook to create pixmaps 2023-04-03 11:46:15 +02:00
xwayland-window-buffers.h xwayland: Cleanup and remove `xwayland.h` 2019-12-20 16:19:01 +01:00
xwayland-window.c xwayland: attach new buffer from libdecor handlers 2023-07-27 09:58:51 +02:00
xwayland-window.h xwayland: add support for wp-tearing-control-v1 2023-06-19 12:19:35 +02:00
xwayland-xtest.c xwayland: Fallback to plain XTEST if EI does not work 2023-06-26 13:19:19 +02:00
xwayland-xtest.h xwayland: Fallback to plain XTEST if EI does not work 2023-06-26 13:19:19 +02:00
xwayland.c Xwayland: Do not mark decorate as experimental 2023-07-18 12:25:26 +02:00