aboutsummaryrefslogtreecommitdiff
path: root/rootston/virtual_keyboard.c
blob: e862caf437a0316433058e9a71d3dbead812d785 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#define _POSIX_C_SOURCE 199309L

#include <wlr/util/log.h>
#include <wlr/types/wlr_virtual_keyboard_v1.h>
#include "rootston/virtual_keyboard.h"
#include "rootston/seat.h"

void handle_virtual_keyboard(struct wl_listener *listener, void *data) {
	struct roots_desktop *desktop =
		wl_container_of(listener, desktop, virtual_keyboard_new);
	struct wlr_virtual_keyboard_v1 *keyboard = data;

	struct roots_seat *seat = input_seat_from_wlr_seat(desktop->server->input,
		keyboard->seat);
	if (!seat) {
		wlr_log(WLR_ERROR, "could not find roots seat");
		return;
	}

	roots_seat_add_device(seat, &keyboard->input_device);
}