summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNathan Reiner <nathan@nathanreiner.xyz>2023-09-05 22:49:11 +0200
committerNathan Reiner <nathan@nathanreiner.xyz>2023-09-05 22:49:11 +0200
commite5e0cf4b601575c2c32ac53b18a3ad3212c28ef7 (patch)
tree76ad5247b355e6dec188f3afbb02e3b7e49bde01
parentfe21a175760856b64fa11083d7bc98e00db659a2 (diff)
update modifiers
-rw-r--r--wlock.c21
1 files changed, 15 insertions, 6 deletions
diff --git a/wlock.c b/wlock.c
index 8fb8262..22207fd 100644
--- a/wlock.c
+++ b/wlock.c
@@ -85,6 +85,7 @@ static void keyboard_keymap(void *data, struct wl_keyboard *keyboard, uint32_t f
static void keyboard_key(void *data, struct wl_keyboard *keyboard, uint32_t serial, uint32_t time, uint32_t key, uint32_t state);
static void keyboard_repeat_info(void *data, struct wl_keyboard *keyboard, int32_t rate, int32_t delay);
static void handle_keyboard_event();
+static void keyboard_modifiers(void *data, struct wl_keyboard *keybaord, uint32_t serial, uint32_t depressed, uint32_t latched, uint32_t locked, uint32_t group);
static void register_monitor(Monitor *mon);
static void dummy() {}
@@ -104,7 +105,7 @@ static const struct wl_keyboard_listener keyboard_listener = {
.enter = dummy,
.key = keyboard_key,
.leave = dummy,
- .modifiers = dummy,
+ .modifiers = keyboard_modifiers,
.repeat_info = keyboard_repeat_info,
};
@@ -188,11 +189,11 @@ add_monitor()
void
remove_monitor(Monitor *mon)
{
- wl_surface_destroy(mon->surface);
- ext_session_lock_surface_v1_destroy(mon->lock_surface);
- wl_output_destroy(mon->output);
- free_drw(mon->canvas);
- free(mon);
+ //wl_surface_destroy(mon->surface);
+ //ext_session_lock_surface_v1_destroy(mon->lock_surface);
+ //wl_output_destroy(mon->output);
+ //free_drw(mon->canvas);
+ //free(mon);
}
@@ -362,6 +363,8 @@ handle_keyboard_event()
break;
case XKB_KEY_KP_Enter: /* fallthrough */
case XKB_KEY_Return:
+ printf("INPUT: %s\n", input_field);
+ fflush(stdout);
if (!(inputhash = crypt(input_field, hash)))
fprintf(stderr, "slock: crypt: %s\n", strerror(errno));
else
@@ -388,6 +391,12 @@ handle_keyboard_event()
void
+keyboard_modifiers(void *data, struct wl_keyboard *keybaord, uint32_t serial, uint32_t depressed, uint32_t latched, uint32_t locked, uint32_t group)
+{
+ xkb_state_update_mask(client.xkb_state, depressed, latched, locked, 0, 0, group);
+}
+
+void
register_monitor(Monitor *mon)
{
mon->surface = wl_compositor_create_surface(client.compositor);