diff --git a/src/backend/wayland/wl_pointer_motion.c b/src/backend/wayland/wl_pointer_motion.c index 5b22c16..e04021b 100644 --- a/src/backend/wayland/wl_pointer_motion.c +++ b/src/backend/wayland/wl_pointer_motion.c @@ -117,10 +117,12 @@ handle_pointer_motion(struct wl_listener *listener, void *data) } W_WL_EnqueueEvent(wmscr, &wev, mtarget); /* Synthesize ENTER/LEAVE for WINGs child view transitions. */ + extern Bool W_IsValidView(W_View *view); if (mtarget != wl_state.last_hovered_view) { WMEvent cev; memset(&cev, 0, sizeof(cev)); - if (wl_state.last_hovered_view) { + if (wl_state.last_hovered_view + && W_IsValidView(wl_state.last_hovered_view)) { cev.type = WME_LEAVE; cev.window = wl_state.last_hovered_view->window; cev.u.crossing.window = cev.window;