Compare commits

..

2 Commits

Author SHA1 Message Date
79ddd2680b Run clippy fix 2023-11-28 08:27:56 +01:00
b2441ec2dc Prevent accidental double touching 2023-11-28 08:27:04 +01:00
2 changed files with 16 additions and 7 deletions

View File

@@ -38,11 +38,11 @@ impl PageCache {
pub fn get_page_or_cache(&mut self, page_number: usize) -> Result<Rc<MyPageType>> {
if let Some(page) = self.get_page(page_number) {
return Ok(page);
Ok(page)
} else {
let _ = self.cache_page(page_number, 100);
if let Some(page) = self.get_page(page_number) {
return Ok(page);
Ok(page)
} else {
bail!("Failed caching and retrieving page {}", page_number);
}

View File

@@ -2,6 +2,7 @@ use std::{
cell::RefCell,
path::{Path, PathBuf},
rc::Rc,
time::{Duration, Instant},
};
use gtk::{
@@ -24,6 +25,7 @@ pub struct Ui {
pub image_left: Picture,
pub image_right: Picture,
pub document_canvas: Option<DocumentCanvas>,
pub last_touch_time: Option<Instant>,
}
pub struct DocumentCanvas {
@@ -55,21 +57,19 @@ impl DocumentCanvas {
pub fn cache_initial_pages(&self, area_height: i32) {
self.page_cache_sender.send_priority_cache_commands(
&vec![self.current_page_number, self.current_page_number + 1],
&[self.current_page_number, self.current_page_number + 1],
area_height,
);
}
pub fn cache_surrounding_pages(&self, area_height: i32) {
self.page_cache_sender.send_cache_commands(
&vec![
self.current_page_number.saturating_sub(2),
&[self.current_page_number.saturating_sub(2),
self.current_page_number.saturating_sub(1),
self.current_page_number,
self.current_page_number + 1,
self.current_page_number + 2,
self.current_page_number + 3,
],
self.current_page_number + 3],
area_height,
);
}
@@ -152,6 +152,14 @@ fn process_right_click(ui: &mut Ui, _x: f64, _y: f64) {
}
fn process_left_click(ui: &mut Ui, x: f64, y: f64) {
if let Some(last_touch_time) = ui.last_touch_time {
if last_touch_time.elapsed() < Duration::from_millis(100) {
// Prevent accidental double touching
return;
}
}
ui.last_touch_time = Some(Instant::now());
if ui.document_canvas.is_none() {
return;
}
@@ -238,6 +246,7 @@ impl Ui {
image_left,
image_right,
document_canvas: None,
last_touch_time: None,
};
let ui = Rc::new(RefCell::new(ui));