mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 08:41:15 +00:00
WindowServer: Properly handle OOM on drag-and-drop metadata copy
This commit is contained in:
parent
efbf6b7e5f
commit
d3a6512643
Notes:
sideshowbarker
2024-07-16 22:18:54 +09:00
Author: https://github.com/BenWiederhake Commit: https://github.com/SerenityOS/serenity/commit/d3a6512643 Pull-request: https://github.com/SerenityOS/serenity/pull/19400
|
@ -1121,7 +1121,12 @@ bool WindowManager::process_ongoing_drag(MouseEvent& event)
|
|||
m_dnd_client->async_drag_accepted();
|
||||
if (window->client()) {
|
||||
auto translated_event = event.translated(-window->position());
|
||||
window->client()->async_drag_dropped(window->window_id(), translated_event.position(), m_dnd_text, m_dnd_mime_data->all_data());
|
||||
auto copied_mime_data_or_error = m_dnd_mime_data->all_data().clone();
|
||||
// If the mime data is so large that it causes memory troubles, we should silently drop the drag'n'drop request entirely.
|
||||
if (copied_mime_data_or_error.is_error())
|
||||
dbgln("Drag and drop mimetype data nearly caused OOM and was dropped: {}", copied_mime_data_or_error.release_error());
|
||||
else
|
||||
window->client()->async_drag_dropped(window->window_id(), translated_event.position(), m_dnd_text, copied_mime_data_or_error.release_value());
|
||||
}
|
||||
} else {
|
||||
m_dnd_client->async_drag_cancelled();
|
||||
|
|
Loading…
Reference in a new issue