refactor: add source location tracing for need_render calls
This commit is contained in:
parent
58bd1fe12a
commit
c3cf5ea02f
13 changed files with 45 additions and 44 deletions
|
|
@ -123,7 +123,7 @@ fn State(ctx_type: type) type {
|
|||
input.mouse.BUTTON1 => {
|
||||
self.active = true;
|
||||
self.drag_anchor = self.to_rel_cursor(x, y);
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
},
|
||||
input.mouse.BUTTON4, input.mouse.BUTTON5 => {
|
||||
self.call_click_handler(btn_enum, self.to_rel_cursor(x, y));
|
||||
|
|
@ -136,7 +136,7 @@ fn State(ctx_type: type) type {
|
|||
self.drag_anchor = null;
|
||||
self.drag_pos = null;
|
||||
self.call_click_handler(@enumFromInt(btn), self.to_rel_cursor(x, y));
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
return true;
|
||||
} else if (try m.match(.{ "D", input.event.press, tp.extract(&btn), tp.any, tp.extract(&x), tp.extract(&y), tp.any, tp.any })) {
|
||||
self.drag_pos = .{ .x = x, .y = y };
|
||||
|
|
@ -153,11 +153,11 @@ fn State(ctx_type: type) type {
|
|||
self.drag_anchor = null;
|
||||
self.drag_pos = null;
|
||||
self.call_click_handler(@enumFromInt(btn), self.to_rel_cursor(x, y));
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
return true;
|
||||
} else if (try m.match(.{ "H", tp.extract(&self.hover) })) {
|
||||
tui.rdr().request_mouse_cursor_pointer(self.hover);
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
return true;
|
||||
}
|
||||
self.drag_anchor = null;
|
||||
|
|
|
|||
|
|
@ -132,21 +132,21 @@ pub fn State(ctx_type: type) type {
|
|||
pub fn receive(self: *Self, _: tp.pid_ref, m: tp.message) error{Exit}!bool {
|
||||
if (try m.match(.{ "B", input.event.press, @intFromEnum(input.mouse.BUTTON1), tp.any, tp.any, tp.any, tp.any, tp.any })) {
|
||||
self.active = true;
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
return true;
|
||||
} else if (try m.match(.{ "B", input.event.release, @intFromEnum(input.mouse.BUTTON1), tp.any, tp.any, tp.any, tp.any, tp.any })) {
|
||||
self.opts.on_click(self.opts.ctx, self);
|
||||
self.active = false;
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
return true;
|
||||
} else if (try m.match(.{ "D", input.event.release, @intFromEnum(input.mouse.BUTTON1), tp.any, tp.any, tp.any, tp.any, tp.any })) {
|
||||
self.opts.on_click(self.opts.ctx, self);
|
||||
self.active = false;
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
return true;
|
||||
} else if (try m.match(.{ "H", tp.extract(&self.hover) })) {
|
||||
tui.rdr().request_mouse_cursor_pointer(self.hover);
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
|
|
|
|||
|
|
@ -170,7 +170,7 @@ pub fn dynamic_cast(self: Self, comptime T: type) ?*T {
|
|||
}
|
||||
|
||||
pub fn need_render() void {
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
}
|
||||
|
||||
pub fn need_reflow() void {
|
||||
|
|
|
|||
|
|
@ -6934,7 +6934,7 @@ pub const EditorWidget = struct {
|
|||
return;
|
||||
} else {
|
||||
self.editor.cancel_all_matches();
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
}
|
||||
},
|
||||
.none => {},
|
||||
|
|
|
|||
|
|
@ -209,7 +209,7 @@ pub fn receive(_: *Self, _: tp.pid_ref, m: tp.message) error{Exit}!bool {
|
|||
var hover: bool = false;
|
||||
if (try m.match(.{ "H", tp.extract(&hover) })) {
|
||||
tui.rdr().request_mouse_cursor_default(hover);
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
return true;
|
||||
}
|
||||
if (try m.match(.{ "B", input.event.press, @intFromEnum(input.mouse.BUTTON1), tp.more }) or
|
||||
|
|
@ -453,7 +453,7 @@ const cmds = struct {
|
|||
const padding = tui.get_widget_style(widget_type).padding;
|
||||
self.menu_len = self.menu_count + padding.top + padding.bottom;
|
||||
self.menu_w = self.menu_label_max + 2 + padding.left + padding.right;
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
try tui.save_config();
|
||||
}
|
||||
pub const home_next_widget_style_meta: Meta = .{};
|
||||
|
|
|
|||
|
|
@ -605,7 +605,7 @@ const cmds = struct {
|
|||
if (view == null)
|
||||
try command.executeName("scroll_view_center", .{});
|
||||
}
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
self.location_update_from_editor();
|
||||
}
|
||||
|
||||
|
|
@ -613,7 +613,7 @@ const cmds = struct {
|
|||
tui.reset_drag_context();
|
||||
try self.create_editor();
|
||||
try command.executeName("open_scratch_buffer", command.fmt(.{ "help", @embedFile("help.md"), "markdown" }));
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
self.location_update_from_editor();
|
||||
}
|
||||
pub const open_help_meta: Meta = .{ .description = "Open help" };
|
||||
|
|
@ -622,7 +622,7 @@ const cmds = struct {
|
|||
tui.reset_drag_context();
|
||||
try self.create_editor();
|
||||
try command.executeName("open_scratch_buffer", command.fmt(.{ "font test", @import("fonts.zig").font_test_text, "text" }));
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
self.location_update_from_editor();
|
||||
}
|
||||
pub const open_font_test_text_meta: Meta = .{ .description = "Open font glyph test text" };
|
||||
|
|
@ -631,7 +631,7 @@ const cmds = struct {
|
|||
tui.reset_drag_context();
|
||||
try self.create_editor();
|
||||
try command.executeName("open_scratch_buffer", command.fmt(.{ "version", root.version_info, "gitcommit" }));
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
self.location_update_from_editor();
|
||||
}
|
||||
pub const open_version_info_meta: Meta = .{ .description = "Version" };
|
||||
|
|
@ -726,7 +726,7 @@ const cmds = struct {
|
|||
tui.reset_drag_context();
|
||||
try self.create_editor();
|
||||
try command.executeName("open_scratch_buffer", .{ .args = args });
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
self.location_update_from_editor();
|
||||
}
|
||||
pub const create_scratch_buffer_meta: Meta = .{ .arguments = &.{ .string, .string, .string } };
|
||||
|
|
@ -807,7 +807,7 @@ const cmds = struct {
|
|||
new_buffer.mark_dirty();
|
||||
new_editor.clamp();
|
||||
new_editor.update_buf(new_buffer.root) catch {};
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
}
|
||||
try command.executeName("save_file", .{});
|
||||
try command.executeName("place_next_tab", command.fmt(.{
|
||||
|
|
@ -836,7 +836,7 @@ const cmds = struct {
|
|||
const logger = log.logger("buffer");
|
||||
defer logger.deinit();
|
||||
logger.print("deleted buffer {s}", .{file_path});
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
}
|
||||
pub const delete_buffer_meta: Meta = .{ .arguments = &.{.string} };
|
||||
|
||||
|
|
@ -852,13 +852,13 @@ const cmds = struct {
|
|||
return;
|
||||
}
|
||||
_ = self.buffer_manager.close_buffer(buffer);
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
}
|
||||
pub const close_buffer_meta: Meta = .{ .arguments = &.{.string} };
|
||||
|
||||
pub fn restore_session(self: *Self, _: Ctx) Result {
|
||||
try self.read_restore_info();
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
}
|
||||
pub const restore_session_meta: Meta = .{};
|
||||
|
||||
|
|
@ -1117,7 +1117,7 @@ const cmds = struct {
|
|||
if (self.get_active_editor()) |editor| if (std.mem.eql(u8, file_path, editor.file_path orelse "")) {
|
||||
self.symbols_complete = true;
|
||||
try tui.open_overlay(@import("mode/overlay/symbol_palette.zig").Type);
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
};
|
||||
}
|
||||
pub const add_document_symbol_done_meta: Meta = .{
|
||||
|
|
@ -1181,7 +1181,7 @@ const cmds = struct {
|
|||
.palette => try tui.open_overlay(@import("mode/overlay/completion_palette.zig").Type),
|
||||
.dropdown => try tui.open_overlay(@import("mode/overlay/completion_dropdown.zig").Type),
|
||||
}
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
}
|
||||
};
|
||||
}
|
||||
|
|
@ -1383,7 +1383,7 @@ const cmds = struct {
|
|||
const buffer = self.buffer_manager.buffer_from_ref(buffer_ref) orelse return;
|
||||
if (self.get_editor_for_buffer(buffer)) |editor| if (editor.buffer) |eb| if (eb == buffer) {
|
||||
editor.smart_buffer_append(command.fmt(.{output})) catch {};
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
return;
|
||||
};
|
||||
var cursor: Buffer.Cursor = .{};
|
||||
|
|
@ -1393,7 +1393,7 @@ const cmds = struct {
|
|||
_, _, root_ = try root_.insert_chars(cursor.row, cursor.col, output, self.allocator, metrics);
|
||||
buffer.store_undo(&[_]u8{}) catch {};
|
||||
buffer.update(root_);
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
}
|
||||
pub const shell_execute_stream_output_meta: Meta = .{ .arguments = &.{ .integer, .string } };
|
||||
|
||||
|
|
@ -1407,7 +1407,7 @@ const cmds = struct {
|
|||
return;
|
||||
}
|
||||
buffer.mark_clean();
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
}
|
||||
pub const shell_execute_stream_output_complete_meta: Meta = .{ .arguments = &.{ .integer, .string } };
|
||||
|
||||
|
|
@ -2074,12 +2074,12 @@ pub fn set_info_content(self: *Self, content: []const u8, mode: enum { replace,
|
|||
.replace => info.set_content(content) catch |e| return tp.exit_error(e, @errorReturnTrace()),
|
||||
.append => info.append_content(content) catch |e| return tp.exit_error(e, @errorReturnTrace()),
|
||||
}
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
}
|
||||
|
||||
pub fn cancel_info_content(self: *Self) tp.result {
|
||||
_ = self.toggle_panel_view(info_view, .disable) catch |e| return tp.exit_error(e, @errorReturnTrace());
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
}
|
||||
|
||||
pub fn vcs_id_update(self: *Self, m: tp.message) void {
|
||||
|
|
|
|||
|
|
@ -179,7 +179,7 @@ pub fn Create(options: type) type {
|
|||
} else {
|
||||
log.logger("file_browser").err("receive", tp.unexpected(m));
|
||||
}
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
}
|
||||
|
||||
fn add_entry(self: *Self, file_name: []const u8, entry_type: EntryType, file_type: []const u8, icon: []const u8, color: u24) !void {
|
||||
|
|
|
|||
|
|
@ -580,7 +580,7 @@ pub fn Create(options: type) type {
|
|||
tui.set_next_style(widget_type);
|
||||
const padding = tui.get_widget_style(widget_type).padding;
|
||||
self.do_resize(padding);
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
try tui.save_config();
|
||||
}
|
||||
pub const overlay_next_widget_style_meta: Meta = .{};
|
||||
|
|
|
|||
|
|
@ -273,7 +273,7 @@ fn process_project_manager(self: *Self, m: tp.message) MessageFilter.Error!void
|
|||
self.menu.select_down();
|
||||
self.need_select_first = false;
|
||||
}
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
} else if (try cbor.match(m.buf, .{
|
||||
"PRJ",
|
||||
"recent",
|
||||
|
|
@ -291,7 +291,7 @@ fn process_project_manager(self: *Self, m: tp.message) MessageFilter.Error!void
|
|||
self.menu.select_down();
|
||||
self.need_select_first = false;
|
||||
}
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
} else if (try cbor.match(m.buf, .{ "PRJ", "recent_done", tp.extract(&self.longest), tp.extract(&query), tp.extract(&self.total_files_in_project) })) {
|
||||
self.update_count_hint();
|
||||
self.query_pending = false;
|
||||
|
|
@ -492,7 +492,7 @@ const cmds = struct {
|
|||
pub fn overlay_next_widget_style(self: *Self, _: Ctx) Result {
|
||||
tui.set_next_style(widget_type);
|
||||
self.do_resize();
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
try tui.save_config();
|
||||
}
|
||||
pub const overlay_next_widget_style_meta: Meta = .{};
|
||||
|
|
|
|||
|
|
@ -635,7 +635,7 @@ pub fn Create(options: type) type {
|
|||
tui.set_next_style(widget_type);
|
||||
const padding = tui.get_widget_style(widget_type).padding;
|
||||
self.do_resize(padding);
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
try tui.save_config();
|
||||
}
|
||||
pub const overlay_next_widget_style_meta: Meta = .{};
|
||||
|
|
|
|||
|
|
@ -188,7 +188,7 @@ fn process_project_manager(self: *Self, m: tp.message) MessageFilter.Error!void
|
|||
self.menu.select_down();
|
||||
self.need_select_first = false;
|
||||
}
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
} else if (try cbor.match(m.buf, .{
|
||||
"PRJ",
|
||||
"new_or_modified_files",
|
||||
|
|
@ -207,7 +207,7 @@ fn process_project_manager(self: *Self, m: tp.message) MessageFilter.Error!void
|
|||
self.menu.select_down();
|
||||
self.need_select_first = false;
|
||||
}
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
} else if (try cbor.match(m.buf, .{ "PRJ", "new_or_modified_files_done", tp.extract(&self.longest), tp.extract(&query) })) {
|
||||
self.query_pending = false;
|
||||
self.need_reset = true;
|
||||
|
|
@ -369,7 +369,7 @@ const cmds = struct {
|
|||
pub fn overlay_next_widget_style(self: *Self, _: Ctx) Result {
|
||||
tui.set_next_style(widget_type);
|
||||
self.do_resize();
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
try tui.save_config();
|
||||
}
|
||||
pub const overlay_next_widget_style_meta: Meta = .{};
|
||||
|
|
|
|||
|
|
@ -95,7 +95,7 @@ pub fn render(self: *Self, theme: *const Widget.Theme) bool {
|
|||
|
||||
fn receive_tick(self: *Self, _: tp.pid_ref, m: tp.message) MessageFilter.Error!bool {
|
||||
if (try cbor.match(m.buf, .{"CLOCK"})) {
|
||||
tui.need_render();
|
||||
tui.need_render(@src());
|
||||
self.update_tick_timer(.ticked);
|
||||
return true;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -407,7 +407,7 @@ fn receive_safe(self: *Self, from: tp.pid_ref, m: tp.message) !void {
|
|||
};
|
||||
try self.dispatch_flush_input_event();
|
||||
if (self.unrendered_input_events_count > 0 and !self.frame_clock_running)
|
||||
need_render();
|
||||
need_render(@src());
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
@ -1613,21 +1613,21 @@ const cmds = struct {
|
|||
|
||||
pub fn panel_next_widget_style(_: *Self, _: Ctx) Result {
|
||||
set_next_style(.panel);
|
||||
need_render();
|
||||
need_render(@src());
|
||||
try save_config();
|
||||
}
|
||||
pub const panel_next_widget_style_meta: Meta = .{};
|
||||
|
||||
pub fn hint_window_next_widget_style(_: *Self, _: Ctx) Result {
|
||||
set_next_style(.hint_window);
|
||||
need_render();
|
||||
need_render(@src());
|
||||
try save_config();
|
||||
}
|
||||
pub const hint_window_next_widget_style_meta: Meta = .{};
|
||||
|
||||
pub fn dropdown_next_widget_style(_: *Self, _: Ctx) Result {
|
||||
set_next_style(.dropdown);
|
||||
need_render();
|
||||
need_render(@src());
|
||||
try save_config();
|
||||
}
|
||||
pub const dropdown_next_widget_style_meta: Meta = .{};
|
||||
|
|
@ -1803,9 +1803,10 @@ fn maybe_reset_drag_source(self: *Self, btn: input.MouseType) void {
|
|||
self.drag_button = 0;
|
||||
}
|
||||
|
||||
pub fn need_render() void {
|
||||
pub fn need_render(src: std.builtin.SourceLocation) void {
|
||||
const self = current();
|
||||
if (!(self.render_pending or self.frame_clock_running)) {
|
||||
tp.trace(tp.channel.debug, .{ "tui", "need_render", src.fn_name, src.file, src.line });
|
||||
self.render_pending = true;
|
||||
tp.self_pid().send(.{"render"}) catch {};
|
||||
}
|
||||
|
|
@ -1819,7 +1820,7 @@ pub fn frames_rendered() usize {
|
|||
pub fn resize() void {
|
||||
mainview_widget().resize(screen());
|
||||
refresh_hover();
|
||||
need_render();
|
||||
need_render(@src());
|
||||
}
|
||||
|
||||
pub fn plane() renderer.Plane {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue