1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 09:48:11 +00:00

LibGUI: Make paste access to Clipboard atomic

This avoids data race issues and saves a synchronous request to the
ClipboardServer.
This commit is contained in:
Ben Wiederhake 2021-11-20 14:59:58 +01:00 committed by Linus Groh
parent 81128c5100
commit c80dcc4671

View file

@ -1453,18 +1453,17 @@ void TextEditor::paste()
if (!is_editable())
return;
if (!Clipboard::the().mime_type().starts_with("text/"))
auto [data, mime_type, _] = GUI::Clipboard::the().data_and_type();
if (!mime_type.starts_with("text/"))
return;
auto paste_text = Clipboard::the().data();
if (paste_text.is_empty())
if (data.is_empty())
return;
dbgln_if(TEXTEDITOR_DEBUG, "Paste: \"{}\"", String::copy(paste_text));
dbgln_if(TEXTEDITOR_DEBUG, "Paste: \"{}\"", String::copy(data));
TemporaryChange change(m_automatic_indentation_enabled, false);
insert_at_cursor_or_replace_selection(paste_text);
insert_at_cursor_or_replace_selection(data);
}
void TextEditor::defer_reflow()