dwl

My patch set and modifications to dwl
git clone git://git.ethandl.dev/dwl
Log | Files | Refs | README | LICENSE

commit e0d310fd84eb4fa34527f6695c998ce9f5eb56d6
parent 3a4b7d104ff8bfc14862b7e41bcacb35677306a4
Author: Ben Jargowsky <benjar63@gmail.com>
Date:   Tue,  5 Apr 2022 23:22:15 -0700

Handle 'wlr_seat_get_keyboard' possibly returning null.

Diffstat:
Mdwl.c | 16+++++++++++-----
1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/dwl.c b/dwl.c @@ -600,8 +600,11 @@ arrangelayers(Monitor *m) layersurface->layer_surface->mapped) { /* Deactivate the focused client. */ focusclient(NULL, 0); - wlr_seat_keyboard_notify_enter(seat, layersurface->layer_surface->surface, - kb->keycodes, kb->num_keycodes, &kb->modifiers); + if (kb) + wlr_seat_keyboard_notify_enter(seat, layersurface->layer_surface->surface, + kb->keycodes, kb->num_keycodes, &kb->modifiers); + else + wlr_seat_keyboard_notify_enter(seat, layersurface->layer_surface->surface, NULL, 0, NULL); return; } } @@ -641,7 +644,7 @@ buttonpress(struct wl_listener *listener, void *data) focusclient(c, 1); keyboard = wlr_seat_get_keyboard(seat); - mods = wlr_keyboard_get_modifiers(keyboard); + mods = keyboard ? wlr_keyboard_get_modifiers(keyboard) : 0; for (b = buttons; b < END(buttons); b++) { if (CLEANMASK(mods) == CLEANMASK(b->mod) && event->button == b->button && b->func) { @@ -1146,8 +1149,11 @@ focusclient(Client *c, int lift) /* Have a client, so focus its top-level wlr_surface */ kb = wlr_seat_get_keyboard(seat); - wlr_seat_keyboard_notify_enter(seat, client_surface(c), - kb->keycodes, kb->num_keycodes, &kb->modifiers); + if (kb) + wlr_seat_keyboard_notify_enter(seat, client_surface(c), + kb->keycodes, kb->num_keycodes, &kb->modifiers); + else + wlr_seat_keyboard_notify_enter(seat, client_surface(c), NULL, 0, NULL); /* Activate the new client */ client_activate_surface(client_surface(c), 1);