mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-08-08 09:09:43 +00:00
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: 835181e9d8
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/CharacterTypes.h>
|
||||||
#include <LibUnicode/Segmenter.h>
|
#include <LibUnicode/Segmenter.h>
|
||||||
|
#include <LibWeb/DOM/Document.h>
|
||||||
#include <LibWeb/DOM/EditingHostManager.h>
|
#include <LibWeb/DOM/EditingHostManager.h>
|
||||||
#include <LibWeb/DOM/Range.h>
|
#include <LibWeb/DOM/Range.h>
|
||||||
#include <LibWeb/DOM/Text.h>
|
#include <LibWeb/DOM/Text.h>
|
||||||
|
@ -15,6 +16,23 @@ namespace Web::DOM {
|
||||||
|
|
||||||
JS_DEFINE_ALLOCATOR(EditingHostManager);
|
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)
|
void EditingHostManager::handle_insert(String const& data)
|
||||||
{
|
{
|
||||||
auto selection = m_document->get_selection();
|
auto selection = m_document->get_selection();
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
#include <LibJS/Heap/Cell.h>
|
#include <LibJS/Heap/Cell.h>
|
||||||
#include <LibJS/Heap/CellAllocator.h>
|
#include <LibJS/Heap/CellAllocator.h>
|
||||||
#include <LibJS/Runtime/Realm.h>
|
#include <LibJS/Runtime/Realm.h>
|
||||||
#include <LibWeb/DOM/Document.h>
|
|
||||||
#include <LibWeb/DOM/InputEventsTarget.h>
|
#include <LibWeb/DOM/InputEventsTarget.h>
|
||||||
#include <LibWeb/Forward.h>
|
#include <LibWeb/Forward.h>
|
||||||
|
|
||||||
|
@ -21,10 +20,7 @@ class EditingHostManager : public JS::Cell
|
||||||
JS_DECLARE_ALLOCATOR(EditingHostManager);
|
JS_DECLARE_ALLOCATOR(EditingHostManager);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
[[nodiscard]] static JS::NonnullGCPtr<EditingHostManager> create(JS::Realm& realm, JS::NonnullGCPtr<Document> document)
|
[[nodiscard]] static JS::NonnullGCPtr<EditingHostManager> create(JS::Realm&, JS::NonnullGCPtr<Document>);
|
||||||
{
|
|
||||||
return realm.heap().allocate<EditingHostManager>(realm, document);
|
|
||||||
}
|
|
||||||
|
|
||||||
virtual void handle_insert(String const&) override;
|
virtual void handle_insert(String const&) override;
|
||||||
virtual void handle_delete(DeleteDirection) override;
|
virtual void handle_delete(DeleteDirection) override;
|
||||||
|
@ -39,24 +35,16 @@ public:
|
||||||
virtual void increment_cursor_position_to_next_word(CollapseSelection) override;
|
virtual void increment_cursor_position_to_next_word(CollapseSelection) override;
|
||||||
virtual void decrement_cursor_position_to_previous_word(CollapseSelection) override;
|
virtual void decrement_cursor_position_to_previous_word(CollapseSelection) override;
|
||||||
|
|
||||||
virtual void visit_edges(Cell::Visitor& visitor) override
|
virtual void visit_edges(Cell::Visitor& visitor) override;
|
||||||
{
|
|
||||||
Base::visit_edges(visitor);
|
|
||||||
visitor.visit(m_document);
|
|
||||||
visitor.visit(m_active_contenteditable_element);
|
|
||||||
}
|
|
||||||
|
|
||||||
void set_active_contenteditable_element(JS::GCPtr<DOM::Node> element)
|
void set_active_contenteditable_element(JS::GCPtr<DOM::Node> element)
|
||||||
{
|
{
|
||||||
m_active_contenteditable_element = element;
|
m_active_contenteditable_element = element;
|
||||||
}
|
}
|
||||||
|
|
||||||
EditingHostManager(JS::NonnullGCPtr<Document> document)
|
|
||||||
: m_document(document)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
EditingHostManager(JS::NonnullGCPtr<Document>);
|
||||||
|
|
||||||
JS::NonnullGCPtr<Document> m_document;
|
JS::NonnullGCPtr<Document> m_document;
|
||||||
JS::GCPtr<DOM::Node> m_active_contenteditable_element;
|
JS::GCPtr<DOM::Node> m_active_contenteditable_element;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue