LibWeb: Move constructor and visit_edges in .cpp for EditingHostManager

This commit is contained in:
Aliaksandr Kalenik 2024-10-31 01:08:42 +01:00 committed by Tim Ledbetter
parent 3ac7ba7f58
commit 835181e9d8
Notes: github-actions[bot] 2024-10-31 19:05:29 +00:00
2 changed files with 22 additions and 16 deletions

View file

@ -6,6 +6,7 @@
#include <LibUnicode/CharacterTypes.h>
#include <LibUnicode/Segmenter.h>
#include <LibWeb/DOM/Document.h>
#include <LibWeb/DOM/EditingHostManager.h>
#include <LibWeb/DOM/Range.h>
#include <LibWeb/DOM/Text.h>
@ -15,6 +16,23 @@ namespace Web::DOM {
JS_DEFINE_ALLOCATOR(EditingHostManager);
JS::NonnullGCPtr<EditingHostManager> EditingHostManager::create(JS::Realm& realm, JS::NonnullGCPtr<Document> document)
{
return realm.heap().allocate<EditingHostManager>(realm, document);
}
EditingHostManager::EditingHostManager(JS::NonnullGCPtr<Document> document)
: m_document(document)
{
}
void EditingHostManager::visit_edges(Cell::Visitor& visitor)
{
Base::visit_edges(visitor);
visitor.visit(m_document);
visitor.visit(m_active_contenteditable_element);
}
void EditingHostManager::handle_insert(String const& data)
{
auto selection = m_document->get_selection();

View file

@ -9,7 +9,6 @@
#include <LibJS/Heap/Cell.h>
#include <LibJS/Heap/CellAllocator.h>
#include <LibJS/Runtime/Realm.h>
#include <LibWeb/DOM/Document.h>
#include <LibWeb/DOM/InputEventsTarget.h>
#include <LibWeb/Forward.h>
@ -21,10 +20,7 @@ class EditingHostManager : public JS::Cell
JS_DECLARE_ALLOCATOR(EditingHostManager);
public:
[[nodiscard]] static JS::NonnullGCPtr<EditingHostManager> create(JS::Realm& realm, JS::NonnullGCPtr<Document> document)
{
return realm.heap().allocate<EditingHostManager>(realm, document);
}
[[nodiscard]] static JS::NonnullGCPtr<EditingHostManager> create(JS::Realm&, JS::NonnullGCPtr<Document>);
virtual void handle_insert(String const&) override;
virtual void handle_delete(DeleteDirection) override;
@ -39,24 +35,16 @@ public:
virtual void increment_cursor_position_to_next_word(CollapseSelection) override;
virtual void decrement_cursor_position_to_previous_word(CollapseSelection) override;
virtual void visit_edges(Cell::Visitor& visitor) override
{
Base::visit_edges(visitor);
visitor.visit(m_document);
visitor.visit(m_active_contenteditable_element);
}
virtual void visit_edges(Cell::Visitor& visitor) override;
void set_active_contenteditable_element(JS::GCPtr<DOM::Node> element)
{
m_active_contenteditable_element = element;
}
EditingHostManager(JS::NonnullGCPtr<Document> document)
: m_document(document)
{
}
private:
EditingHostManager(JS::NonnullGCPtr<Document>);
JS::NonnullGCPtr<Document> m_document;
JS::GCPtr<DOM::Node> m_active_contenteditable_element;
};