diff options
author | Leonardo Hernández Hernández <leohdz172@protonmail.com> | 2022-08-27 16:05:12 -0500 |
---|---|---|
committer | Leonardo Hernández Hernández <leohdz172@protonmail.com> | 2022-08-27 16:34:29 -0500 |
commit | d738573e22649dfb01f70eca00cef221839c9efb (patch) | |
tree | 46f65d4164c6a43479835226c11d2a0bebab7e09 | |
parent | b9295e8cee8d3e057f92a9fea1523c379c298f03 (diff) |
new function to notify keyboard enter
-rw-r--r-- | client.h | 10 | ||||
-rw-r--r-- | dwl.c | 15 |
2 files changed, 12 insertions, 13 deletions
@@ -199,6 +199,16 @@ client_is_unmanaged(Client *c) } static inline void +client_notify_enter(struct wlr_surface *s, struct wlr_keyboard *kb) +{ + if (kb) + wlr_seat_keyboard_notify_enter(seat, s, kb->keycodes, + kb->num_keycodes, &kb->modifiers); + else + wlr_seat_keyboard_notify_enter(seat, s, NULL, 0, NULL); +} + +static inline void client_restack_surface(Client *c) { #ifdef XWAYLAND @@ -590,7 +590,6 @@ arrangelayers(Monitor *m) ZWLR_LAYER_SHELL_V1_LAYER_TOP, }; LayerSurface *layersurface; - struct wlr_keyboard *kb = wlr_seat_get_keyboard(seat); /* Arrange exclusive surfaces from top->bottom */ for (i = 3; i >= 0; i--) @@ -614,11 +613,7 @@ arrangelayers(Monitor *m) /* Deactivate the focused client. */ focusclient(NULL, 0); exclusive_focus = layersurface->layer_surface->surface; - if (kb) - wlr_seat_keyboard_notify_enter(seat, exclusive_focus, - kb->keycodes, kb->num_keycodes, &kb->modifiers); - else - wlr_seat_keyboard_notify_enter(seat, exclusive_focus, NULL, 0, NULL); + client_notify_enter(exclusive_focus, wlr_seat_get_keyboard(seat)); return; } } @@ -1117,7 +1112,6 @@ void focusclient(Client *c, int lift) { struct wlr_surface *old = seat->keyboard_state.focused_surface; - struct wlr_keyboard *kb; int i; /* Do not focus clients if a layer surface is focused */ if (exclusive_focus) @@ -1178,12 +1172,7 @@ focusclient(Client *c, int lift) } /* Have a client, so focus its top-level wlr_surface */ - kb = wlr_seat_get_keyboard(seat); - 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); + client_notify_enter(client_surface(c), wlr_seat_get_keyboard(seat)); /* Activate the new client */ client_activate_surface(client_surface(c), 1); |