mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-11-25 16:42:26 +00:00
backend/wayland: don't ack a configure event too early
Postpone sending xdg_surface.ack_configure until the guest compositor commits a buffer, if at all. Also see https://gitlab.freedesktop.org/wayland/wayland-protocols/-/issues/128.
This commit is contained in:
parent
94e7165e85
commit
baf1e4f674
@ -588,6 +588,11 @@ static bool output_commit(struct wlr_output *wlr_output,
|
|||||||
output->surface);
|
output->surface);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (output->has_configure_serial) {
|
||||||
|
xdg_surface_ack_configure(output->xdg_surface, output->configure_serial);
|
||||||
|
output->has_configure_serial = false;
|
||||||
|
}
|
||||||
|
|
||||||
wl_surface_commit(output->surface);
|
wl_surface_commit(output->surface);
|
||||||
|
|
||||||
if (wp_feedback != NULL) {
|
if (wp_feedback != NULL) {
|
||||||
@ -742,7 +747,8 @@ static void xdg_surface_handle_configure(void *data,
|
|||||||
assert(output && output->xdg_surface == xdg_surface);
|
assert(output && output->xdg_surface == xdg_surface);
|
||||||
|
|
||||||
output->configured = true;
|
output->configured = true;
|
||||||
xdg_surface_ack_configure(xdg_surface, serial);
|
output->has_configure_serial = true;
|
||||||
|
output->configure_serial = serial;
|
||||||
|
|
||||||
int32_t req_width = output->wlr_output.width;
|
int32_t req_width = output->wlr_output.width;
|
||||||
int32_t req_height = output->wlr_output.height;
|
int32_t req_height = output->wlr_output.height;
|
||||||
|
@ -95,7 +95,10 @@ struct wlr_wl_output {
|
|||||||
// 0 if not requested
|
// 0 if not requested
|
||||||
int32_t requested_width, requested_height;
|
int32_t requested_width, requested_height;
|
||||||
|
|
||||||
|
uint32_t configure_serial;
|
||||||
|
bool has_configure_serial;
|
||||||
bool configured;
|
bool configured;
|
||||||
|
|
||||||
uint32_t enter_serial;
|
uint32_t enter_serial;
|
||||||
|
|
||||||
struct {
|
struct {
|
||||||
|
Loading…
Reference in New Issue
Block a user