mirror of
https://github.com/SerenityOS/serenity
synced 2026-05-15 11:26:36 +02:00
We don't actually generate any such events ourselves. But Google Lens will create one with the DataTransfer attribute set to that of any drop event we send it. (cherry picked from commit 0b0d44da275067458e61a5dd80c4563f6aa7fdc6)
42 lines
1.1 KiB
C++
42 lines
1.1 KiB
C++
/*
|
|
* Copyright (c) 2024, Tim Flynn <trflynn89@serenityos.org>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <LibJS/Runtime/Realm.h>
|
|
#include <LibWeb/Bindings/ClipboardEventPrototype.h>
|
|
#include <LibWeb/Bindings/Intrinsics.h>
|
|
#include <LibWeb/Clipboard/ClipboardEvent.h>
|
|
|
|
namespace Web::Clipboard {
|
|
|
|
JS_DEFINE_ALLOCATOR(ClipboardEvent);
|
|
|
|
JS::NonnullGCPtr<ClipboardEvent> ClipboardEvent::construct_impl(JS::Realm& realm, FlyString const& event_name, ClipboardEventInit const& event_init)
|
|
{
|
|
return realm.heap().allocate<ClipboardEvent>(realm, realm, event_name, event_init);
|
|
}
|
|
|
|
ClipboardEvent::ClipboardEvent(JS::Realm& realm, FlyString const& event_name, ClipboardEventInit const& event_init)
|
|
: DOM::Event(realm, event_name, event_init)
|
|
, m_clipboard_data(event_init.clipboard_data)
|
|
{
|
|
}
|
|
|
|
ClipboardEvent::~ClipboardEvent() = default;
|
|
|
|
void ClipboardEvent::initialize(JS::Realm& realm)
|
|
{
|
|
Base::initialize(realm);
|
|
WEB_SET_PROTOTYPE_FOR_INTERFACE(ClipboardEvent);
|
|
}
|
|
|
|
void ClipboardEvent::visit_edges(JS::Cell::Visitor& visitor)
|
|
{
|
|
Base::visit_edges(visitor);
|
|
visitor.visit(m_clipboard_data);
|
|
}
|
|
|
|
}
|