~ruther/dwl

2c134faa406627a3c8ca935ac4e5c502b4d4d01e — Devin J. Pohly 5 years ago 33b0236
allow NULL surface with client in focus functions
1 files changed, 4 insertions(+), 1 deletions(-)

M dwl.c
M dwl.c => dwl.c +4 -1
@@ 465,7 465,7 @@ focusclient(Client *c, struct wlr_surface *surface, int lift)
{
	if (c) {
		/* assert(VISIBLEON(c, c->mon)); ? */
		/* If no surface provided, use the client's xdg_surface */
		/* Use top level surface if nothing more specific given */
		if (!surface)
			surface = c->xdg_surface->surface;
		/* Focus the correct monitor as well */


@@ 763,6 763,9 @@ void
pointerfocus(Client *c, struct wlr_surface *surface, double sx, double sy,
		uint32_t time)
{
	/* Use top level surface if nothing more specific given */
	if (c && !surface)
		surface = c->xdg_surface->surface;
	/* If surface is already focused, only notify of motion */
	if (surface && surface == seat->pointer_state.focused_surface) {
		wlr_seat_pointer_notify_motion(seat, time, sx, sy);

Do not follow this link