diff --git a/CHANGELOG.md b/CHANGELOG.md index f554124b..78803ea3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -78,8 +78,12 @@ * Other output (key presses, query replies etc) being mixed with paste data, both interactive pastes and OSC-52 ([#2307][2307]). +* Scrollback search not working correctly when the terminal + application has enabled the kitty keyboard protocol with release + event reporting ([#2316][2316]). [2307]: https://codeberg.org/dnkl/foot/issues/2307 +[2316]: https://codeberg.org/dnkl/foot/issues/2316 ### Security diff --git a/input.c b/input.c index aa6b7f1d..6a829a70 100644 --- a/input.c +++ b/input.c @@ -1643,31 +1643,34 @@ key_press_release(struct seat *seat, struct terminal *term, uint32_t serial, seat->wayl->key_binding_manager, term->conf, seat); xassert(bindings != NULL); - if (pressed) { - if (term->unicode_mode.active) { + if (term->unicode_mode.active) { + if (pressed) unicode_mode_input(seat, term, sym); - return; - } + return; + } - else if (term->is_searching) { + else if (term->is_searching) { + if (pressed) { if (should_repeat) start_repeater(seat, key); search_input( seat, term, bindings, key, sym, mods, consumed, raw_syms, raw_count, serial); - return; } + return; + } - else if (urls_mode_is_active(term)) { + else if (urls_mode_is_active(term)) { + if (pressed) { if (should_repeat) start_repeater(seat, key); urls_input( seat, term, bindings, key, sym, mods, consumed, raw_syms, raw_count, serial); - return; } + return; } #if defined(_DEBUG) && defined(LOG_ENABLE_DBG) && LOG_ENABLE_DBG