mirror of https://github.com/lapce/lapce.git
add idle timer to editor view
This commit is contained in:
parent
9af3e2637e
commit
4f60706bc5
|
@ -41,6 +41,7 @@ pub struct LapceEditorView {
|
||||||
pub editor: WidgetPod<LapceTabData, LapceEditorContainer>,
|
pub editor: WidgetPod<LapceTabData, LapceEditorContainer>,
|
||||||
pub find: Option<WidgetPod<LapceTabData, Box<dyn Widget<LapceTabData>>>>,
|
pub find: Option<WidgetPod<LapceTabData, Box<dyn Widget<LapceTabData>>>>,
|
||||||
cursor_blink_timer: TimerToken,
|
cursor_blink_timer: TimerToken,
|
||||||
|
last_idle_timer: TimerToken,
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn editor_tab_child_widget(
|
pub fn editor_tab_child_widget(
|
||||||
|
@ -75,6 +76,7 @@ pub fn new(
|
||||||
editor: WidgetPod::new(editor),
|
editor: WidgetPod::new(editor),
|
||||||
find,
|
find,
|
||||||
cursor_blink_timer: TimerToken::INVALID,
|
cursor_blink_timer: TimerToken::INVALID,
|
||||||
|
last_idle_timer: TimerToken::INVALID,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -515,6 +517,10 @@ fn event(
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let editor = data.main_split.editors.get(&self.view_id).unwrap().clone();
|
||||||
|
let mut editor_data = data.editor_view_content(self.view_id);
|
||||||
|
let doc = editor_data.doc.clone();
|
||||||
|
|
||||||
match event {
|
match event {
|
||||||
Event::MouseDown(mouse_event) => match mouse_event.button {
|
Event::MouseDown(mouse_event) => match mouse_event.button {
|
||||||
druid::MouseButton::Left => {
|
druid::MouseButton::Left => {
|
||||||
|
@ -529,7 +535,6 @@ fn event(
|
||||||
let command = cmd.get_unchecked(LAPCE_UI_COMMAND);
|
let command = cmd.get_unchecked(LAPCE_UI_COMMAND);
|
||||||
if let LapceUICommand::Focus = command {
|
if let LapceUICommand::Focus = command {
|
||||||
self.request_focus(ctx, data, true);
|
self.request_focus(ctx, data, true);
|
||||||
let editor_data = data.editor_view_content(self.view_id);
|
|
||||||
self.ensure_cursor_visible(
|
self.ensure_cursor_visible(
|
||||||
ctx,
|
ctx,
|
||||||
&editor_data,
|
&editor_data,
|
||||||
|
@ -549,14 +554,19 @@ fn event(
|
||||||
self.cursor_blink_timer = TimerToken::INVALID;
|
self.cursor_blink_timer = TimerToken::INVALID;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
_ => (),
|
Event::Timer(id) if self.last_idle_timer == *id => {
|
||||||
}
|
ctx.set_handled();
|
||||||
|
if let BufferContent::Value(name) = &editor_data.editor.content {
|
||||||
let editor = data.main_split.editors.get(&self.view_id).unwrap().clone();
|
// ctx.submit_command(Command::new(
|
||||||
let mut editor_data = data.editor_view_content(self.view_id);
|
// LAPCE_UI_COMMAND,
|
||||||
let doc = editor_data.doc.clone();
|
// LapceUICommand::UpdateSettingsFile(
|
||||||
|
// name.to_string(),
|
||||||
match event {
|
// editor_data.doc.buffer().text().to_string(),
|
||||||
|
// ),
|
||||||
|
// Target::Widget(data.id),
|
||||||
|
// ));
|
||||||
|
}
|
||||||
|
}
|
||||||
Event::KeyDown(key_event) => {
|
Event::KeyDown(key_event) => {
|
||||||
ctx.set_handled();
|
ctx.set_handled();
|
||||||
let mut keypress = data.keypress.clone();
|
let mut keypress = data.keypress.clone();
|
||||||
|
@ -697,6 +707,16 @@ fn update(
|
||||||
let old_editor_data = old_data.editor_view_content(self.view_id);
|
let old_editor_data = old_data.editor_view_content(self.view_id);
|
||||||
let editor_data = data.editor_view_content(self.view_id);
|
let editor_data = data.editor_view_content(self.view_id);
|
||||||
|
|
||||||
|
if let BufferContent::Value(_) = &editor_data.editor.content {
|
||||||
|
if editor_data.doc.buffer().len() != old_editor_data.doc.buffer().len()
|
||||||
|
|| editor_data.doc.buffer().text().slice_to_cow(..)
|
||||||
|
!= old_editor_data.doc.buffer().text().slice_to_cow(..)
|
||||||
|
{
|
||||||
|
self.last_idle_timer =
|
||||||
|
ctx.request_timer(Duration::from_millis(500), None);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if data.focus == self.view_id {
|
if data.focus == self.view_id {
|
||||||
let reset = if old_data.focus != self.view_id {
|
let reset = if old_data.focus != self.view_id {
|
||||||
true
|
true
|
||||||
|
|
Loading…
Reference in New Issue