...when pointer moves off the xdg-shell surface which is possible when
for example grabbing a scroll-bar or selecting text.
Clamping results in undetected pointer motion when applied in the
direction of movement (for example clamping at view->y masks vertical
movement when the y-coordinate is greater than view->y), which in turn
can appear as sporadic to the end-user.
sy = server->seat.cursor->y - ly;
if (view && view->type == LAB_XDG_SHELL_VIEW) {
- /*
- * X11 apps expect to be able to receive motion events outside
- * the window area (this is necessary for client-side move/resize
- * handles to work properly). So only clamp the motion coordinates
- * for XDG surfaces.
- */
- sx = sx < 0 ? 0 : (sx > view->w ? view->w : sx);
- sy = sy < 0 ? 0 : (sy > view->h ? view->h : sy);
/* Take into account invisible CSD borders */
if (view->xdg_surface) {
struct wlr_box geo;