mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-20 09:49:15 +03:00
LibWeb: Use the correct DOM node when moving text cursor with mouse
We should use the DOM node returned by the TextCursor hit test, and not the one we got from the earlier Exact hit test.
This commit is contained in:
parent
a0e558ce89
commit
2323b6fb74
Notes:
sideshowbarker
2024-07-18 22:13:25 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/2323b6fb74d
@ -197,7 +197,7 @@ bool EventHandler::handle_mousedown(const Gfx::IntPoint& position, unsigned butt
|
||||
if (button == GUI::MouseButton::Left) {
|
||||
auto result = layout_root()->hit_test(position, Layout::HitTestType::TextCursor);
|
||||
if (result.layout_node && result.layout_node->dom_node()) {
|
||||
m_frame.set_cursor_position(DOM::Position(*node, result.index_in_node));
|
||||
m_frame.set_cursor_position(DOM::Position(*result.layout_node->dom_node(), result.index_in_node));
|
||||
layout_root()->set_selection({ { result.layout_node, result.index_in_node }, {} });
|
||||
m_in_mouse_selection = true;
|
||||
}
|
||||
@ -262,7 +262,7 @@ bool EventHandler::handle_mousemove(const Gfx::IntPoint& position, unsigned butt
|
||||
if (m_in_mouse_selection) {
|
||||
auto hit = layout_root()->hit_test(position, Layout::HitTestType::TextCursor);
|
||||
if (hit.layout_node && hit.layout_node->dom_node()) {
|
||||
m_frame.set_cursor_position(DOM::Position(*node, result.index_in_node));
|
||||
m_frame.set_cursor_position(DOM::Position(*hit.layout_node->dom_node(), result.index_in_node));
|
||||
layout_root()->set_selection_end({ hit.layout_node, hit.index_in_node });
|
||||
}
|
||||
if (auto* page = m_frame.page())
|
||||
|
Loading…
Reference in New Issue
Block a user