mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
For the purpose of matching key bindings, "significant" modifiers are no more. We're really only interested in filtering out "locked" modifiers. We're already doing this, so there's no need to *also* match against a set of "significant" modifiers. Furthermore, we *never* want to consider locked keys (e.g. when emitting escapes to the client application), thus we can filter those out already when retrieving the set of active modifiers. The exception is the kitty keyboard protocol, which has support for CapsLock and NumLock. Since we're already re-retrieving the "consumed" modifiers (using the GTK style, rather than normal "XKB" style, to better match the kitty terminal), we might as well re-retrieve the effective modifiers as well.
26 lines
813 B
C
26 lines
813 B
C
#pragma once
|
|
|
|
#include <xkbcommon/xkbcommon.h>
|
|
|
|
#include "key-binding.h"
|
|
#include "terminal.h"
|
|
|
|
void search_begin(struct terminal *term);
|
|
void search_cancel(struct terminal *term);
|
|
void search_input(
|
|
struct seat *seat, struct terminal *term,
|
|
const struct key_binding_set *bindings, uint32_t key,
|
|
xkb_keysym_t sym, xkb_mod_mask_t mods, xkb_mod_mask_t consumed,
|
|
const xkb_keysym_t *raw_syms, size_t raw_count,
|
|
uint32_t serial);
|
|
void search_add_chars(struct terminal *term, const char *text, size_t len);
|
|
|
|
void search_selection_cancelled(struct terminal *term);
|
|
|
|
struct search_match_iterator {
|
|
struct terminal *term;
|
|
struct coord start;
|
|
};
|
|
|
|
struct search_match_iterator search_matches_new_iter(struct terminal *term);
|
|
struct range search_matches_next(struct search_match_iterator *iter);
|