LibWeb: Move constructor and visit_edges in .cpp for EditingHostManager
This commit is contained in:
parent
3ac7ba7f58
commit
835181e9d8
Notes:
github-actions[bot]
2024-10-31 19:05:29 +00:00
Author: https://github.com/kalenikaliaksandr Commit: https://github.com/LadybirdBrowser/ladybird/commit/835181e9d81 Pull-request: https://github.com/LadybirdBrowser/ladybird/pull/2091 Reviewed-by: https://github.com/trflynn89 ✅
2 changed files with 22 additions and 16 deletions
|
@ -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();
|
||||
|
|
|
@ -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;
|
||||
};
|
||||
|
|
Loading…
Add table
Reference in a new issue