summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevin J. Pohly <djpohly@gmail.com>2023-07-21 20:13:38 -0400
committerLeonardo Hernández Hernández <leohdz172@proton.me>2023-08-22 01:44:31 -0600
commit4eb54b55f36e770a42e9fc6a4701911b6aaac441 (patch)
treec5eae8fdc341988cc0fa74c14d4ad44a5e6fd29f
parent4567979b16b0509bb80b6102ecb9b601b3cf6fa1 (diff)
No need to send surface.leave/enter events
The scene graph implementation sends these for us, and it does so more accurately than our overly-simplified approach. Layer shell surfaces don't appear to receive these events at all, according to my WAYLAND_DEBUG experiments with bemenu and dtao. ΔSLOC: -4
-rw-r--r--dwl.c8
1 files changed, 2 insertions, 6 deletions
diff --git a/dwl.c b/dwl.c
index 655ded0..ddf7cad 100644
--- a/dwl.c
+++ b/dwl.c
@@ -1525,7 +1525,6 @@ void
maplayersurfacenotify(struct wl_listener *listener, void *data)
{
LayerSurface *l = wl_container_of(listener, l, map);
- wlr_surface_send_enter(l->layer_surface->surface, l->mon->wlr_output);
motionnotify(0);
}
@@ -2091,15 +2090,12 @@ setmon(Client *c, Monitor *m, uint32_t newtags)
c->mon = m;
c->prev = c->geom;
- /* TODO leave/enter is not optimal but works */
- if (oldmon) {
- wlr_surface_send_leave(client_surface(c), oldmon->wlr_output);
+ /* Scene graph sends surface leave/enter events on move and resize */
+ if (oldmon)
arrange(oldmon);
- }
if (m) {
/* Make sure window actually overlaps with the monitor */
resize(c, c->geom, 0);
- wlr_surface_send_enter(client_surface(c), m->wlr_output);
c->tags = newtags ? newtags : m->tagset[m->seltags]; /* assign tags of target monitor */
setfullscreen(c, c->isfullscreen); /* This will call arrange(c->mon) */
}