Skip to content

Commit b51b5ac

Browse files
NiuGuohuitordex
authored andcommitted
fix: the issue where :hover/:active are not triggered by on_mouse_leave and on_button_cancel
1 parent f61a678 commit b51b5ac

File tree

1 file changed

+5
-18
lines changed

1 file changed

+5
-18
lines changed

src/document.cpp

Lines changed: 5 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -685,9 +685,11 @@ bool document::on_mouse_leave( position::vector& redraw_boxes )
685685
}
686686
if(m_over_element)
687687
{
688-
if(m_over_element->on_mouse_leave())
688+
auto el = m_over_element;
689+
m_over_element = nullptr;
690+
if(el->on_mouse_leave())
689691
{
690-
m_container->on_mouse_event(m_over_element, mouse_event_leave);
692+
m_container->on_mouse_event(el, mouse_event_leave);
691693
return m_root->find_styles_changes(redraw_boxes);
692694
}
693695
}
@@ -765,23 +767,8 @@ bool document::on_lbutton_up( pixel_t /*x*/, pixel_t /*y*/, pixel_t /*client_x*/
765767
}
766768

767769
bool document::on_button_cancel(position::vector& redraw_boxes) {
768-
if(!m_root || !m_root_render)
769-
{
770-
return false;
771-
}
772770
m_active_element = nullptr;
773-
if(m_over_element)
774-
{
775-
if(m_over_element->on_mouse_leave())
776-
{
777-
m_container->on_mouse_event(m_over_element, mouse_event_leave);
778-
}
779-
if(m_over_element->on_lbutton_up(false))
780-
{
781-
return m_root->find_styles_changes(redraw_boxes);
782-
}
783-
}
784-
return false;
771+
return on_mouse_leave(redraw_boxes);
785772
}
786773

787774
void document::get_fixed_boxes( position::vector& fixed_boxes )

0 commit comments

Comments
 (0)