From e55b59256e0d2841d55743c2661205e782b96f36 Mon Sep 17 00:00:00 2001 From: Emil Ernerfeldt Date: Mon, 9 Nov 2020 18:40:23 +0100 Subject: [PATCH] Press enter in single line `TextEdit` to surrender keyboard focus --- CHANGELOG.md | 4 ++++ egui/src/widgets/text_edit.rs | 5 +++++ 2 files changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5b22ad94..aa0090fe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). ## Unreleased +### Changed 🔧 + +* Pressing enter in a single-line `TextEdit` will now surrender keyboard focus for it + ### Fixed 🐛 * Fixed bug where a lost widget could still retain keyboard focus. diff --git a/egui/src/widgets/text_edit.rs b/egui/src/widgets/text_edit.rs index a4d50fda..79edcc28 100644 --- a/egui/src/widgets/text_edit.rs +++ b/egui/src/widgets/text_edit.rs @@ -169,6 +169,10 @@ impl<'t> Widget for TextEdit<'t> { } => { if multiline { insert_text(&mut cursor, text, "\n"); + } else { + // Common to end input with enter + ui.memory().surrender_kb_focus(id); + break; } } Event::Key { @@ -176,6 +180,7 @@ impl<'t> Widget for TextEdit<'t> { pressed: true, } => { ui.memory().surrender_kb_focus(id); + break; } Event::Key { key, pressed: true } => { on_key_press(&mut cursor, text, *key);