Wayland: avoid replacing text with empty string (#8103)

Rom Grk created

Fix an issue where the `ime_key` is sometimes an empty string, and
pressing a keystroke replaces the selected text.

E.g. select some text, press `Escape`: selected text is deleted.

Change summary

crates/gpui/src/platform/linux/util.rs | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

Detailed changes

crates/gpui/src/platform/linux/util.rs 🔗

@@ -17,7 +17,9 @@ impl Keystroke {
 
         // Ignore control characters (and DEL) for the purposes of ime_key,
         // but if key_utf32 is 0 then assume it isn't one
-        let ime_key = (key_utf32 == 0 || (key_utf32 >= 32 && key_utf32 != 127)).then_some(key_utf8);
+        let ime_key = ((key_utf32 == 0 || (key_utf32 >= 32 && key_utf32 != 127))
+            && !key_utf8.is_empty())
+        .then_some(key_utf8);
 
         Keystroke {
             modifiers,