aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--client.h10
-rw-r--r--dwl.c15
2 files changed, 12 insertions, 13 deletions
diff --git a/client.h b/client.h
index 5988db3..a881131 100644
--- a/client.h
+++ b/client.h
@@ -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
diff --git a/dwl.c b/dwl.c
index f76e30f..66aea65 100644
--- a/dwl.c
+++ b/dwl.c
@@ -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);