Browse Source

Propagate mouse wheel event outside context when there is nothing to scroll, see #433

Michael Ragazzon 2 years ago
parent
commit
75ab61fd9a
2 changed files with 2 additions and 4 deletions
  1. 1 1
      Source/Core/Context.cpp
  2. 1 3
      Source/Core/Element.cpp

+ 1 - 1
Source/Core/Context.cpp

@@ -863,7 +863,7 @@ bool Context::ProcessMouseWheel(Vector2f wheel_delta, int key_modifier_state)
 	else
 		scroll_controller->ActivateSmoothscroll(target, scroll_length, ScrollBehavior::Auto);
 
-	return false;
+	return target == nullptr;
 }
 
 bool Context::ProcessMouseLeave()

+ 1 - 3
Source/Core/Element.cpp

@@ -1997,10 +1997,8 @@ Element* Element::GetClosestScrollableContainer()
 	scrollable_x = (scrollable_x && GetScrollWidth() > GetClientWidth());
 	scrollable_y = (scrollable_y && GetScrollHeight() > GetClientHeight());
 
-	if (scrollable_x || scrollable_y)
+	if (scrollable_x || scrollable_y || meta->computed_values.overscroll_behavior() == OverscrollBehavior::Contain)
 		return this;
-	else if (meta->computed_values.overscroll_behavior() == OverscrollBehavior::Contain)
-		return nullptr;
 	else if (parent)
 		return parent->GetClosestScrollableContainer();