Fix regression in ui event handling in scrollable page

This commit is contained in:
dec05eba
2024-12-14 17:53:30 +01:00
parent 846d3c4e81
commit fed42ee511

View File

@@ -19,18 +19,20 @@ namespace gsr {
if(!visible) if(!visible)
return true; return true;
offset = position + offset + mgl::vec2f(0.0f, scroll_y); offset = position + offset;
Widget *selected_widget = selected_child_widget;
const mgl::vec2f content_size = get_inner_size(); const mgl::vec2f content_size = get_inner_size();
const mgl::vec2i scissor_pos(offset.x, offset.y); const mgl::vec2i scissor_pos(offset.x, offset.y);
const mgl::vec2i scissor_size(content_size.x, content_size.y); const mgl::vec2i scissor_size(content_size.x, content_size.y);
offset.y += scroll_y;
Widget *selected_widget = selected_child_widget;
if(event.type == mgl::Event::MouseButtonPressed || event.type == mgl::Event::MouseButtonReleased) { if(event.type == mgl::Event::MouseButtonPressed || event.type == mgl::Event::MouseButtonReleased) {
if(!mgl::IntRect(scissor_pos, scissor_pos).contains({event.mouse_button.x, event.mouse_button.y})) if(!mgl::IntRect(scissor_pos, scissor_size).contains({event.mouse_button.x, event.mouse_button.y}))
return true; return true;
} else if(event.type == mgl::Event::MouseMoved) { } else if(event.type == mgl::Event::MouseMoved) {
if(!mgl::IntRect(scissor_pos, scissor_pos).contains({event.mouse_move.x, event.mouse_move.y})) if(!mgl::IntRect(scissor_pos, scissor_size).contains({event.mouse_move.x, event.mouse_move.y}))
return true; return true;
} }