table: fix deadlocks caused by lock fairness (#2156)
This commit is contained in:
parent
944159d514
commit
3d36a20376
1 changed files with 9 additions and 6 deletions
|
@ -357,10 +357,11 @@ impl<'a> Table<'a> {
|
||||||
.expand(ui.style().interaction.resize_grab_radius_side);
|
.expand(ui.style().interaction.resize_grab_radius_side);
|
||||||
let mouse_over_resize_line = ui.rect_contains_pointer(line_rect);
|
let mouse_over_resize_line = ui.rect_contains_pointer(line_rect);
|
||||||
|
|
||||||
if ui.input().pointer.any_pressed()
|
let any_pressed_and_down = {
|
||||||
&& ui.input().pointer.any_down()
|
let pointer = &ui.input().pointer;
|
||||||
&& mouse_over_resize_line
|
pointer.any_pressed() && pointer.any_down()
|
||||||
{
|
};
|
||||||
|
if any_pressed_and_down && mouse_over_resize_line {
|
||||||
ui.memory().set_dragged_id(resize_id);
|
ui.memory().set_dragged_id(resize_id);
|
||||||
}
|
}
|
||||||
let is_resizing = ui.memory().is_being_dragged(resize_id);
|
let is_resizing = ui.memory().is_being_dragged(resize_id);
|
||||||
|
@ -377,8 +378,10 @@ impl<'a> Table<'a> {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let dragging_something_else =
|
let dragging_something_else = {
|
||||||
ui.input().pointer.any_down() || ui.input().pointer.any_pressed();
|
let pointer = &ui.input().pointer;
|
||||||
|
pointer.any_down() || pointer.any_pressed()
|
||||||
|
};
|
||||||
let resize_hover = mouse_over_resize_line && !dragging_something_else;
|
let resize_hover = mouse_over_resize_line && !dragging_something_else;
|
||||||
|
|
||||||
if resize_hover || is_resizing {
|
if resize_hover || is_resizing {
|
||||||
|
|
Loading…
Reference in a new issue