mirror of
https://gitlab.freedesktop.org/wlroots/wlroots.git
synced 2024-10-30 07:30:46 +00:00
Revert "xwm: emit new_surface/destroy on associate/dissociate"
Firing new_surface when a wlr_surface is associated to the X11 window is too
late: the X11 client might've sent configure events before that.
This reverts commit 039cca8a51
.
Fixes: https://gitlab.freedesktop.org/wlroots/wlroots/-/issues/3606
This commit is contained in:
parent
beb820b573
commit
2d6a09d9f0
@ -206,6 +206,8 @@ static struct wlr_xwayland_surface *xwayland_surface_create(
|
|||||||
|
|
||||||
wl_list_insert(&xwm->surfaces, &surface->link);
|
wl_list_insert(&xwm->surfaces, &surface->link);
|
||||||
|
|
||||||
|
wl_signal_emit_mutable(&xwm->xwayland->events.new_surface, surface);
|
||||||
|
|
||||||
return surface;
|
return surface;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -397,8 +399,6 @@ static void xwayland_surface_dissociate(struct wlr_xwayland_surface *xsurface) {
|
|||||||
xwayland_surface_set_mapped(xsurface, false);
|
xwayland_surface_set_mapped(xsurface, false);
|
||||||
|
|
||||||
if (xsurface->surface != NULL) {
|
if (xsurface->surface != NULL) {
|
||||||
wl_signal_emit_mutable(&xsurface->events.destroy, xsurface);
|
|
||||||
|
|
||||||
wl_list_remove(&xsurface->surface_commit.link);
|
wl_list_remove(&xsurface->surface_commit.link);
|
||||||
wl_list_remove(&xsurface->surface_precommit.link);
|
wl_list_remove(&xsurface->surface_precommit.link);
|
||||||
wlr_addon_finish(&xsurface->surface_addon);
|
wlr_addon_finish(&xsurface->surface_addon);
|
||||||
@ -417,6 +417,8 @@ static void xwayland_surface_dissociate(struct wlr_xwayland_surface *xsurface) {
|
|||||||
static void xwayland_surface_destroy(struct wlr_xwayland_surface *xsurface) {
|
static void xwayland_surface_destroy(struct wlr_xwayland_surface *xsurface) {
|
||||||
xwayland_surface_dissociate(xsurface);
|
xwayland_surface_dissociate(xsurface);
|
||||||
|
|
||||||
|
wl_signal_emit_mutable(&xsurface->events.destroy, xsurface);
|
||||||
|
|
||||||
if (xsurface == xsurface->xwm->focus_surface) {
|
if (xsurface == xsurface->xwm->focus_surface) {
|
||||||
xwm_surface_activate(xsurface->xwm, NULL);
|
xwm_surface_activate(xsurface->xwm, NULL);
|
||||||
}
|
}
|
||||||
@ -960,8 +962,6 @@ static void xwayland_surface_associate(struct wlr_xwm *xwm,
|
|||||||
if (xwm->xres) {
|
if (xwm->xres) {
|
||||||
read_surface_client_id(xwm, xsurface);
|
read_surface_client_id(xwm, xsurface);
|
||||||
}
|
}
|
||||||
|
|
||||||
wl_signal_emit_mutable(&xwm->xwayland->events.new_surface, xsurface);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void xwm_handle_create_notify(struct wlr_xwm *xwm,
|
static void xwm_handle_create_notify(struct wlr_xwm *xwm,
|
||||||
|
Loading…
Reference in New Issue
Block a user