feat(flicker): avoid triggering initial render from branch widget
This commit is contained in:
parent
5b077a8581
commit
980529029f
2 changed files with 9 additions and 1 deletions
|
@ -93,7 +93,8 @@ fn process_git(self: *Self, m: tp.message) MessageFilter.Error!bool {
|
|||
}
|
||||
|
||||
fn process_status(self: *Self, m: tp.message) MessageFilter.Error!bool {
|
||||
defer Widget.need_render();
|
||||
defer if (tui.frames_rendered() > 0)
|
||||
Widget.need_render();
|
||||
|
||||
var value: []const u8 = undefined;
|
||||
var ahead: []const u8 = undefined;
|
||||
|
|
|
@ -61,6 +61,7 @@ fontface_: []const u8 = "",
|
|||
fontfaces_: std.ArrayListUnmanaged([]const u8) = .{},
|
||||
enable_mouse_idle_timer: bool = false,
|
||||
query_cache_: *syntax.QueryCache,
|
||||
frames_rendered_: usize = 0,
|
||||
|
||||
const keepalive = std.time.us_per_day * 365; // one year
|
||||
const idle_frames = 0;
|
||||
|
@ -449,6 +450,7 @@ fn receive_safe(self: *Self, from: tp.pid_ref, m: tp.message) !void {
|
|||
}
|
||||
|
||||
fn render(self: *Self) void {
|
||||
defer self.frames_rendered_ += 1;
|
||||
const current_time = std.time.microTimestamp();
|
||||
if (current_time < self.frame_last_time) { // clock moved backwards
|
||||
self.frame_last_time = current_time;
|
||||
|
@ -1184,6 +1186,11 @@ pub fn need_render() void {
|
|||
}
|
||||
}
|
||||
|
||||
pub fn frames_rendered() usize {
|
||||
const self = current();
|
||||
return self.frames_rendered_;
|
||||
}
|
||||
|
||||
pub fn resize() void {
|
||||
mainview_widget().resize(screen());
|
||||
refresh_hover();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue