From 6b17ab77f31368676dff949b49c8f1334dd8242b Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Sat, 24 Feb 2024 02:09:02 +0100 Subject: [PATCH] LibWeb: Do not delete empty range in EventHandler::handle_keydown() Fixes a crash that occurs when inputting into an empty contenteditable element (`EditEventHandler::handle_delete()` assumes the cursor position's node is always `DOM::Text`, which is not the case for an empty `contenteditable`). --- Userland/Libraries/LibWeb/Page/EventHandler.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Userland/Libraries/LibWeb/Page/EventHandler.cpp b/Userland/Libraries/LibWeb/Page/EventHandler.cpp index 454a0b2511..884eaef94b 100644 --- a/Userland/Libraries/LibWeb/Page/EventHandler.cpp +++ b/Userland/Libraries/LibWeb/Page/EventHandler.cpp @@ -757,7 +757,7 @@ bool EventHandler::handle_keydown(KeyCode key, u32 modifiers, u32 code_point) if (auto selection = document->get_selection()) { auto range = selection->range(); - if (range && range->start_container()->is_editable()) { + if (range && !range->collapsed() && range->start_container()->is_editable()) { selection->remove_all_ranges(); // FIXME: This doesn't work for some reason?