mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-02-05 04:06:08 -05:00
ime: render pre-edit text
This is done by allocating cells for the pre-edit text when receiving the text-input::done() call, and populating them by converting the utf-8 formatted pre-edit text to wchars. We also convert the pre-edit cursor position to cell positions (it can cover multiple cells). When rendering, we simply render the pre-edit cells on-top off the regular grid. While doing so, we also mark the underlying, “real”, cells as dirty, to ensure they are re-rendered when the pre-edit text is modified or removed.
This commit is contained in:
parent
5745c610ac
commit
8c3d48c5cd
8 changed files with 364 additions and 60 deletions
4
input.c
4
input.c
|
|
@ -21,7 +21,7 @@
|
|||
#include <xdg-shell.h>
|
||||
|
||||
#define LOG_MODULE "input"
|
||||
#define LOG_ENABLE_DBG 1
|
||||
#define LOG_ENABLE_DBG 0
|
||||
#include "log.h"
|
||||
#include "config.h"
|
||||
#include "commands.h"
|
||||
|
|
@ -752,7 +752,7 @@ keymap_lookup(struct seat *seat, struct terminal *term,
|
|||
const enum keypad_keys keypad_keys_mode
|
||||
= term->num_lock_modifier ? KEYPAD_NUMERICAL : term->keypad_keys_mode;
|
||||
|
||||
log_dbg("keypad mode: %d, num-lock=%d", keypad_keys_mode, seat->kbd.num);
|
||||
LOG_DBG("keypad mode: %d, num-lock=%d", keypad_keys_mode, seat->kbd.num);
|
||||
|
||||
for (size_t j = 0; j < count; j++) {
|
||||
if (info[j].modifiers != MOD_ANY && info[j].modifiers != mods)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue