fix panic when scrolling quickly
This commit is contained in:
parent
ab8652ee3e
commit
873e5b1ebf
@ -276,12 +276,19 @@ impl FunctionEntry {
|
|||||||
|
|
||||||
let mut partial_regen = false;
|
let mut partial_regen = false;
|
||||||
|
|
||||||
|
let overlaps = if self.back_data.is_empty() {
|
||||||
|
false
|
||||||
|
} else {
|
||||||
|
let prev_min = unsafe { self.back_data.first().unwrap_unchecked() }.x;
|
||||||
|
let prev_max = unsafe { self.back_data.first().unwrap_unchecked() }.x;
|
||||||
|
(settings.min_x <= prev_max) && (settings.max_x >= prev_min)
|
||||||
|
};
|
||||||
|
|
||||||
if width_changed {
|
if width_changed {
|
||||||
self.invalidate_back();
|
self.invalidate_back();
|
||||||
self.invalidate_derivative();
|
self.invalidate_derivative();
|
||||||
} else if min_max_changed && !self.back_data.is_empty() && !did_zoom {
|
} else if min_max_changed && !self.back_data.is_empty() && !did_zoom && overlaps {
|
||||||
partial_regen = true;
|
partial_regen = true;
|
||||||
|
|
||||||
let prev_min = unsafe { self.back_data.first().unwrap_unchecked() }.x;
|
let prev_min = unsafe { self.back_data.first().unwrap_unchecked() }.x;
|
||||||
|
|
||||||
if prev_min < settings.min_x {
|
if prev_min < settings.min_x {
|
||||||
@ -320,6 +327,7 @@ impl FunctionEntry {
|
|||||||
debug_assert_eq!(data.len(), settings.plot_width + 1);
|
debug_assert_eq!(data.len(), settings.plot_width + 1);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
// TODO: fix weird values on the far right when scrolling fast left-ward
|
||||||
let min_i = ((settings.max_x - prev_min) as f64 / resolution) as usize;
|
let min_i = ((settings.max_x - prev_min) as f64 / resolution) as usize;
|
||||||
let min_i_2 = settings.plot_width - min_i;
|
let min_i_2 = settings.plot_width - min_i;
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user