1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-27 01:57:45 +00:00

LibWeb: Move editing stuff into EditEventHandler.

This commit is contained in:
asynts 2020-12-01 23:35:47 +01:00 committed by Andreas Kling
parent 82aac98bea
commit bbcc5a9332
11 changed files with 161 additions and 22 deletions

View file

@ -24,11 +24,21 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
#include <LibWeb/DOM/Position.h>
#include <LibWeb/Layout/LayoutPosition.h>
#include <LibWeb/Layout/Node.h>
namespace Web::Layout {
DOM::Position LayoutPosition::to_dom_position() const
{
if (!layout_node)
return {};
// FIXME: Verify that there are no shenanigans going on.
return { const_cast<DOM::Node&>(*layout_node->dom_node()), (unsigned)index_in_node };
}
LayoutRange LayoutRange::normalized() const
{
if (!is_valid())

View file

@ -27,6 +27,8 @@
#pragma once
#include <AK/RefPtr.h>
#include <LibWeb/Forward.h>
#include <LibWeb/Layout/Node.h>
namespace Web::Layout {
@ -35,6 +37,8 @@ class Node;
struct LayoutPosition {
RefPtr<Node> layout_node;
int index_in_node { 0 };
DOM::Position to_dom_position() const;
};
class LayoutRange {
@ -58,7 +62,9 @@ public:
void set_end(const LayoutPosition& end) { m_end = end; }
const LayoutPosition& start() const { return m_start; }
LayoutPosition& start() { return m_start; }
const LayoutPosition& end() const { return m_end; }
LayoutPosition& end() { return m_end; }
LayoutRange normalized() const;