File: key-state.h

package info (click to toggle)
labwc 0.9.2-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 2,980 kB
  • sloc: ansic: 34,416; perl: 5,836; xml: 875; sh: 162; python: 131; makefile: 12
file content (28 lines) | stat: -rw-r--r-- 1,009 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/* SPDX-License-Identifier: GPL-2.0-only */
#ifndef LABWC_KEY_STATE_H
#define LABWC_KEY_STATE_H

#include <stdbool.h>
#include <stdint.h>

/*
 * All keycodes in these functions are (Linux) libinput evdev scancodes which is
 * what 'wlr_keyboard' uses (e.g. 'seat->keyboard_group->keyboard->keycodes').
 * Note: These keycodes are different to XKB scancodes by a value of 8.
 */

/**
 * key_state_pressed_sent_keycodes - generate array of pressed+sent keys
 * Note: The array is generated by subtracting any bound keys from _all_ pressed
 * keys (because bound keys were not forwarded to clients).
 */
uint32_t *key_state_pressed_sent_keycodes(void);
int key_state_nr_pressed_sent_keycodes(void);

void key_state_set_pressed(uint32_t keycode, bool is_pressed);
void key_state_store_pressed_key_as_bound(uint32_t keycode);
bool key_state_corresponding_press_event_was_bound(uint32_t keycode);
void key_state_bound_key_remove(uint32_t keycode);
int key_state_nr_bound_keys(void);

#endif /* LABWC_KEY_STATE_H */