diff options
| author | Leonardo Hernández Hernández <leohdz172@protonmail.com> | 2022-03-18 00:59:52 -0600 | 
|---|---|---|
| committer | Leonardo Hernández Hernández <leohdz172@protonmail.com> | 2022-03-18 00:59:52 -0600 | 
| commit | 0815626d4c4db3aa05ed256975476d6a31be2125 (patch) | |
| tree | 6b0eec2042f0c879bc1c0bcc720d5d8886df9f0f | |
| parent | 1b22ef16161fe832e14aa29678e09eb7df56e395 (diff) | |
pointerfocus: only use provided surface
if a client is given focus it
Diffstat (limited to '')
| -rw-r--r-- | dwl.c | 22 | 
1 files changed, 6 insertions, 16 deletions
@@ -1540,9 +1540,8 @@ pointerfocus(Client *c, struct wlr_surface *surface, double sx, double sy,  	struct timespec now;  	int internal_call = !time; -	/* Use top level surface if nothing more specific given */ -	if (c && !surface) -		surface = client_surface(c); +	if (sloppyfocus && !internal_call && c && !client_is_unmanaged(c)) +		focusclient(c, 0);  	/* If surface is NULL, clear pointer focus */  	if (!surface) { @@ -1555,21 +1554,12 @@ pointerfocus(Client *c, struct wlr_surface *surface, double sx, double sy,  		time = now.tv_sec * 1000 + now.tv_nsec / 1000000;  	} -	/* If surface is already focused, only notify of motion */ -	if (surface == seat->pointer_state.focused_surface) { -		wlr_seat_pointer_notify_motion(seat, time, sx, sy); -		return; -	} - -	/* Otherwise, let the client know that the mouse cursor has entered one -	 * of its surfaces, and make keyboard focus follow if desired. */ +	/* Let the client know that the mouse cursor has entered one +	 * of its surfaces, and make keyboard focus follow if desired. +	 * wlroots makes this a no-op if surface is already focused */  	wlr_seat_pointer_notify_enter(seat, surface, sx, sy); +	wlr_seat_pointer_notify_motion(seat, time, sx, sy); -	if (!c || client_is_unmanaged(c)) -		return; - -	if (sloppyfocus && !internal_call) -		focusclient(c, 0);  }  void  | 
