fix: not need to judge x11 for image_capture_scene_surface

This commit is contained in:
DreamMaoMao 2025-08-01 19:47:09 +08:00
parent 81f07eb42f
commit bc9575068c

View file

@ -234,6 +234,7 @@ struct Client {
struct wlr_scene_tree *image_capture_tree; struct wlr_scene_tree *image_capture_tree;
struct wlr_scene *image_capture_scene; struct wlr_scene *image_capture_scene;
struct wlr_ext_image_capture_source_v1 *image_capture_source; struct wlr_ext_image_capture_source_v1 *image_capture_source;
struct wlr_scene_surface *image_capture_scene_surface;
struct wl_list link; struct wl_list link;
struct wl_list flink; struct wl_list flink;
@ -251,8 +252,6 @@ struct Client {
struct wl_listener set_title; struct wl_listener set_title;
struct wl_listener fullscreen; struct wl_listener fullscreen;
#ifdef XWAYLAND #ifdef XWAYLAND
struct wlr_scene_surface *image_capture_scene_surface;
struct wl_listener activate; struct wl_listener activate;
struct wl_listener associate; struct wl_listener associate;
struct wl_listener dissociate; struct wl_listener dissociate;
@ -3209,11 +3208,8 @@ mapnotify(struct wl_listener *listener, void *data) {
c->ext_foreign_toplevel = wlr_ext_foreign_toplevel_handle_v1_create( c->ext_foreign_toplevel = wlr_ext_foreign_toplevel_handle_v1_create(
foreign_toplevel_list, &foreign_toplevel_state); foreign_toplevel_list, &foreign_toplevel_state);
c->ext_foreign_toplevel->data = c; c->ext_foreign_toplevel->data = c;
#ifdef XWAYLAND
c->image_capture_scene_surface = wlr_scene_surface_create( c->image_capture_scene_surface = wlr_scene_surface_create(
&c->image_capture_scene->tree, client_surface(c)); &c->image_capture_scene->tree, client_surface(c));
#endif
/* Handle unmanaged clients first so we can return prior create borders */ /* Handle unmanaged clients first so we can return prior create borders */
if (client_is_unmanaged(c)) { if (client_is_unmanaged(c)) {
@ -4819,12 +4815,7 @@ void unmapnotify(struct wl_listener *listener, void *data) {
c->swallowing = NULL; c->swallowing = NULL;
} }
#ifdef XWAYLAND wlr_scene_node_destroy(&c->image_capture_scene_surface->buffer->node);
if (client_is_x11(c)) {
wlr_scene_node_destroy(&c->image_capture_scene_surface->buffer->node);
c->image_capture_scene_surface = NULL;
}
#endif
wlr_scene_node_destroy(&c->image_capture_scene->tree.node); wlr_scene_node_destroy(&c->image_capture_scene->tree.node);
wlr_scene_node_destroy(&c->scene->node); wlr_scene_node_destroy(&c->scene->node);
printstatus(); printstatus();