mirror of https://github.com/lapce/lapce.git
don't request timer if blink interval is 0
This commit is contained in:
parent
c2ad7f33de
commit
1995f84a60
|
@ -544,8 +544,12 @@ fn event(
|
|||
Event::Command(cmd) if cmd.is(LAPCE_UI_COMMAND) => {
|
||||
let command = cmd.get_unchecked(LAPCE_UI_COMMAND);
|
||||
if let LapceUICommand::Focus = command {
|
||||
self.cursor_blink_timer =
|
||||
ctx.request_timer(Duration::from_millis(500), None);
|
||||
if data.config.editor.blink_interval > 0 {
|
||||
self.cursor_blink_timer = ctx.request_timer(
|
||||
Duration::from_millis(data.config.editor.blink_interval),
|
||||
None,
|
||||
);
|
||||
}
|
||||
self.request_focus(ctx, data, true);
|
||||
let editor_data = data.editor_view_content(self.view_id);
|
||||
self.ensure_cursor_visible(
|
||||
|
@ -559,12 +563,16 @@ fn event(
|
|||
}
|
||||
Event::Timer(id) if self.cursor_blink_timer == *id => {
|
||||
ctx.set_handled();
|
||||
if ctx.is_focused() {
|
||||
ctx.request_paint();
|
||||
self.cursor_blink_timer =
|
||||
ctx.request_timer(Duration::from_millis(500), None);
|
||||
} else {
|
||||
self.cursor_blink_timer = TimerToken::INVALID;
|
||||
if data.config.editor.blink_interval > 0 {
|
||||
if ctx.is_focused() {
|
||||
ctx.request_paint();
|
||||
self.cursor_blink_timer = ctx.request_timer(
|
||||
Duration::from_millis(data.config.editor.blink_interval),
|
||||
None,
|
||||
);
|
||||
} else {
|
||||
self.cursor_blink_timer = TimerToken::INVALID;
|
||||
}
|
||||
}
|
||||
}
|
||||
Event::Timer(id) if self.last_idle_timer == *id => {
|
||||
|
@ -768,27 +776,31 @@ fn update(
|
|||
}
|
||||
}
|
||||
|
||||
if data.focus == self.view_id {
|
||||
let reset = if old_data.focus != self.view_id {
|
||||
true
|
||||
} else {
|
||||
let mode = editor_data.editor.cursor.get_mode();
|
||||
let old_mode = old_editor_data.editor.cursor.get_mode();
|
||||
let offset = editor_data.editor.cursor.offset();
|
||||
let old_offset = old_editor_data.editor.cursor.offset();
|
||||
let (line, col) =
|
||||
editor_data.doc.buffer().offset_to_line_col(offset);
|
||||
let (old_line, old_col) =
|
||||
old_editor_data.doc.buffer().offset_to_line_col(old_offset);
|
||||
mode != old_mode || line != old_line || col != old_col
|
||||
};
|
||||
if data.config.editor.blink_interval > 0 {
|
||||
if data.focus == self.view_id {
|
||||
let reset = if old_data.focus != self.view_id {
|
||||
true
|
||||
} else {
|
||||
let mode = editor_data.editor.cursor.get_mode();
|
||||
let old_mode = old_editor_data.editor.cursor.get_mode();
|
||||
let offset = editor_data.editor.cursor.offset();
|
||||
let old_offset = old_editor_data.editor.cursor.offset();
|
||||
let (line, col) =
|
||||
editor_data.doc.buffer().offset_to_line_col(offset);
|
||||
let (old_line, old_col) =
|
||||
old_editor_data.doc.buffer().offset_to_line_col(old_offset);
|
||||
mode != old_mode || line != old_line || col != old_col
|
||||
};
|
||||
|
||||
if reset {
|
||||
self.cursor_blink_timer =
|
||||
ctx.request_timer(Duration::from_millis(500), None);
|
||||
*editor_data.editor.last_cursor_instant.borrow_mut() =
|
||||
Instant::now();
|
||||
ctx.request_paint();
|
||||
if reset {
|
||||
self.cursor_blink_timer = ctx.request_timer(
|
||||
Duration::from_millis(data.config.editor.blink_interval),
|
||||
None,
|
||||
);
|
||||
*editor_data.editor.last_cursor_instant.borrow_mut() =
|
||||
Instant::now();
|
||||
ctx.request_paint();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue