فهرست منبع

LibWeb: Do not handle mouse events on disabled checkboxes

redoste 4 سال پیش
والد
کامیت
ad031ec5d7
1فایلهای تغییر یافته به همراه3 افزوده شده و 3 حذف شده
  1. 3 3
      Libraries/LibWeb/Layout/LayoutCheckBox.cpp

+ 3 - 3
Libraries/LibWeb/Layout/LayoutCheckBox.cpp

@@ -65,7 +65,7 @@ void LayoutCheckBox::paint(PaintContext& context, PaintPhase phase)
 
 void LayoutCheckBox::handle_mousedown(Badge<EventHandler>, const Gfx::IntPoint&, unsigned button, unsigned)
 {
-    if (button != GUI::MouseButton::Left)
+    if (button != GUI::MouseButton::Left || !node().enabled())
         return;
 
     m_being_pressed = true;
@@ -77,7 +77,7 @@ void LayoutCheckBox::handle_mousedown(Badge<EventHandler>, const Gfx::IntPoint&,
 
 void LayoutCheckBox::handle_mouseup(Badge<EventHandler>, const Gfx::IntPoint& position, unsigned button, unsigned)
 {
-    if (!m_tracking_mouse || button != GUI::MouseButton::Left)
+    if (!m_tracking_mouse || button != GUI::MouseButton::Left || !node().enabled())
         return;
 
     // NOTE: Changing the checked state of the DOM node may run arbitrary JS, which could disappear this node.
@@ -94,7 +94,7 @@ void LayoutCheckBox::handle_mouseup(Badge<EventHandler>, const Gfx::IntPoint& po
 
 void LayoutCheckBox::handle_mousemove(Badge<EventHandler>, const Gfx::IntPoint& position, unsigned, unsigned)
 {
-    if (!m_tracking_mouse)
+    if (!m_tracking_mouse || !node().enabled())
         return;
 
     bool is_inside = enclosing_int_rect(absolute_rect()).contains(position);