Merge pull request #97730 from KoBeWi/rich_text_label_inside_a_scroll_container_inside_a_bag_of_milk

Handle scroll events in RichtTextLabel
This commit is contained in:
Rémi Verschelde 2024-10-03 15:27:24 +02:00
commit ae7fd80d9c
No known key found for this signature in database
GPG key ID: C3336907360768E1

View file

@ -2067,16 +2067,27 @@ void RichTextLabel::gui_input(const Ref<InputEvent> &p_event) {
}
}
bool scroll_value_modified = false;
double prev_scroll = vscroll->get_value();
if (b->get_button_index() == MouseButton::WHEEL_UP) {
if (scroll_active) {
vscroll->scroll(-vscroll->get_page() * b->get_factor() * 0.5 / 8);
scroll_value_modified = true;
}
}
if (b->get_button_index() == MouseButton::WHEEL_DOWN) {
if (scroll_active) {
vscroll->scroll(vscroll->get_page() * b->get_factor() * 0.5 / 8);
scroll_value_modified = true;
}
}
if (scroll_value_modified && vscroll->get_value() != prev_scroll) {
accept_event();
return;
}
if (b->get_button_index() == MouseButton::RIGHT && context_menu_enabled) {
_update_context_menu();
menu->set_position(get_screen_position() + b->get_position());