diff --git a/src/tui/tui.zig b/src/tui/tui.zig index f31369e..e89336c 100644 --- a/src/tui/tui.zig +++ b/src/tui/tui.zig @@ -655,6 +655,7 @@ fn render(self: *Self) void { defer frame.deinit(); self.rdr_.render() catch |e| self.logger.err("render", e); tracy.frameMark(); + self.unrendered_input_events_count = 0; } self.top_layer_reset(); @@ -664,7 +665,6 @@ fn render(self: *Self) void { self.idle_frame_count + 1; if (more or self.idle_frame_count < idle_frames or self.no_sleep) { - self.unrendered_input_events_count = 0; if (!self.frame_clock_running) { self.frame_clock.start() catch {}; self.frame_clock_running = true; @@ -718,7 +718,8 @@ fn dispatch_mouse(ctx: *anyopaque, y: c_int, x: c_int, cbor_msg: []const u8) voi self.update_mouse_idle_timer(); const m: tp.message = .{ .buf = cbor_msg }; const from = tp.self_pid(); - self.unrendered_input_events_count += 1; + if (!(m.match(.{ "M", tp.more }) catch false)) + self.unrendered_input_events_count += 1; const send_func = if (self.drag_source) |_| &send_mouse_drag else &send_mouse; send_func(self, y, x, from, m) catch |e| self.logger.err("dispatch mouse", e); var btn: input.MouseType = 0;