Compare commits
2 commits
ce87dcfa2b
...
50c04d3937
| Author | SHA1 | Date | |
|---|---|---|---|
| 50c04d3937 | |||
| 4e38d15878 |
2 changed files with 11 additions and 3 deletions
|
|
@ -88,7 +88,7 @@ fn store_reset(self: *Self) void {
|
||||||
fn receive(self: *Self, from: tp.pid_ref, m: tp.message) tp.result {
|
fn receive(self: *Self, from: tp.pid_ref, m: tp.message) tp.result {
|
||||||
errdefer self.deinit();
|
errdefer self.deinit();
|
||||||
var output: []const u8 = undefined;
|
var output: []const u8 = undefined;
|
||||||
if (try m.match(.{ "log", "error", tp.string, "std.log", "->", tp.extract(&output) })) {
|
if (try m.match(.{ "log", "error", tp.string, tp.string, "->", tp.extract(&output) })) {
|
||||||
if (self.subscriber) |subscriber| {
|
if (self.subscriber) |subscriber| {
|
||||||
subscriber.send_raw(m) catch {};
|
subscriber.send_raw(m) catch {};
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -324,6 +324,7 @@ const Tab = struct {
|
||||||
tabbar: *TabBar,
|
tabbar: *TabBar,
|
||||||
buffer_ref: usize,
|
buffer_ref: usize,
|
||||||
tab_style: *const Style,
|
tab_style: *const Style,
|
||||||
|
close_pos: ?c_uint = null,
|
||||||
|
|
||||||
const Mode = enum { active, inactive, selected };
|
const Mode = enum { active, inactive, selected };
|
||||||
|
|
||||||
|
|
@ -348,11 +349,16 @@ const Tab = struct {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
fn on_click(self: *@This(), _: *ButtonType, _: Button.Cursor) void {
|
fn on_click(self: *@This(), _: *ButtonType, pos: Button.Cursor) void {
|
||||||
const buffer_manager = tui.get_buffer_manager() orelse @panic("tabs no buffer manager");
|
const buffer_manager = tui.get_buffer_manager() orelse @panic("tabs no buffer manager");
|
||||||
if (buffer_manager.buffer_from_ref(self.buffer_ref)) |buffer|
|
if (buffer_manager.buffer_from_ref(self.buffer_ref)) |buffer| {
|
||||||
|
if (self.close_pos) |close_pos| if (pos.col == close_pos) {
|
||||||
|
tp.self_pid().send(.{ "cmd", "close_buffer", .{buffer.get_file_path()} }) catch {};
|
||||||
|
return;
|
||||||
|
};
|
||||||
tp.self_pid().send(.{ "cmd", "navigate", .{ .file = buffer.get_file_path() } }) catch {};
|
tp.self_pid().send(.{ "cmd", "navigate", .{ .file = buffer.get_file_path() } }) catch {};
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
fn on_click2(self: *@This(), _: *ButtonType, _: Button.Cursor) void {
|
fn on_click2(self: *@This(), _: *ButtonType, _: Button.Cursor) void {
|
||||||
const buffer_manager = tui.get_buffer_manager() orelse @panic("tabs no buffer manager");
|
const buffer_manager = tui.get_buffer_manager() orelse @panic("tabs no buffer manager");
|
||||||
|
|
@ -491,8 +497,10 @@ const Tab = struct {
|
||||||
};
|
};
|
||||||
_ = btn.plane.putstr(btn.opts.label) catch {};
|
_ = btn.plane.putstr(btn.opts.label) catch {};
|
||||||
_ = btn.plane.putstr(" ") catch {};
|
_ = btn.plane.putstr(" ") catch {};
|
||||||
|
self.close_pos = null;
|
||||||
if (btn.hover) {
|
if (btn.hover) {
|
||||||
btn.plane.set_style(.{ .fg = self.tab_style.close_icon_fg.from_theme(theme) });
|
btn.plane.set_style(.{ .fg = self.tab_style.close_icon_fg.from_theme(theme) });
|
||||||
|
self.close_pos = btn.plane.cursor_x();
|
||||||
_ = btn.plane.putstr(self.tabbar.tab_style.close_icon) catch {};
|
_ = btn.plane.putstr(self.tabbar.tab_style.close_icon) catch {};
|
||||||
} else if (is_dirty) {
|
} else if (is_dirty) {
|
||||||
if (self.tab_style.dirty_indicator_fg) |color|
|
if (self.tab_style.dirty_indicator_fg) |color|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue