From 62a4ec14001ae263850161ed9d15ea3b9a27ec6d Mon Sep 17 00:00:00 2001 From: CJ van den Berg Date: Thu, 12 Dec 2024 18:46:57 +0100 Subject: [PATCH] fix: alpha rendering of status bar --- src/tui/status/blank.zig | 5 ++++- src/tui/status/clock.zig | 5 ++++- src/tui/status/diagstate.zig | 5 ++++- src/tui/status/filestate.zig | 5 ++++- src/tui/status/keybindstate.zig | 5 ++++- src/tui/status/keystate.zig | 5 ++++- src/tui/status/linenumstate.zig | 5 ++++- src/tui/status/minilog.zig | 5 ++++- src/tui/status/modestate.zig | 5 ++++- src/tui/status/modstate.zig | 5 ++++- src/tui/status/selectionstate.zig | 5 ++++- 11 files changed, 44 insertions(+), 11 deletions(-) diff --git a/src/tui/status/blank.zig b/src/tui/status/blank.zig index 65252bd..2cb1733 100644 --- a/src/tui/status/blank.zig +++ b/src/tui/status/blank.zig @@ -35,8 +35,11 @@ pub fn layout(self: *Self) Widget.Layout { } pub fn render(self: *Self, theme: *const Widget.Theme) bool { - self.plane.set_base_style(theme.statusbar); + self.plane.set_base_style(theme.editor); self.plane.erase(); + self.plane.home(); + self.plane.set_style(theme.statusbar); + _ = self.plane.fill_width(" ", .{}) catch {}; return false; } diff --git a/src/tui/status/clock.zig b/src/tui/status/clock.zig index 6cf9adf..a171e36 100644 --- a/src/tui/status/clock.zig +++ b/src/tui/status/clock.zig @@ -59,9 +59,12 @@ pub fn layout(_: *Self) Widget.Layout { } pub fn render(self: *Self, theme: *const Widget.Theme) bool { - self.plane.set_base_style(theme.statusbar); + self.plane.set_base_style(theme.editor); self.plane.erase(); self.plane.home(); + self.plane.set_style(theme.statusbar); + _ = self.plane.fill_width(" ", .{}) catch {}; + self.plane.home(); const now = zeit.instant(.{ .timezone = &self.tz }) catch return false; const dt = now.time(); diff --git a/src/tui/status/diagstate.zig b/src/tui/status/diagstate.zig index 96d05f8..74d84a9 100644 --- a/src/tui/status/diagstate.zig +++ b/src/tui/status/diagstate.zig @@ -40,9 +40,12 @@ pub fn layout(self: *Self, _: *Button.State(Self)) Widget.Layout { pub fn render(self: *Self, btn: *Button.State(Self), theme: *const Widget.Theme) bool { const bg_style = if (btn.active) theme.editor_cursor else if (btn.hover) theme.statusbar_hover else theme.statusbar; - btn.plane.set_base_style(bg_style); + btn.plane.set_base_style(theme.editor); btn.plane.erase(); btn.plane.home(); + btn.plane.set_style(bg_style); + _ = btn.plane.fill_width(" ", .{}) catch {}; + btn.plane.home(); _ = btn.plane.putstr(self.rendered) catch {}; return false; } diff --git a/src/tui/status/filestate.zig b/src/tui/status/filestate.zig index 25a770d..f428fe4 100644 --- a/src/tui/status/filestate.zig +++ b/src/tui/status/filestate.zig @@ -78,9 +78,12 @@ pub fn layout(_: *Self, _: *Button.State(Self)) Widget.Layout { pub fn render(self: *Self, btn: *Button.State(Self), theme: *const Widget.Theme) bool { const style_base = theme.statusbar; const style_label = if (btn.active) theme.editor_cursor else style_base; - btn.plane.set_base_style(style_base); + btn.plane.set_base_style(theme.editor); btn.plane.erase(); btn.plane.home(); + btn.plane.set_style(style_base); + _ = btn.plane.fill_width(" ", .{}) catch {}; + btn.plane.home(); btn.plane.set_style(style_label); if (btn.active) { _ = btn.plane.fill_width(" ", .{}) catch {}; diff --git a/src/tui/status/keybindstate.zig b/src/tui/status/keybindstate.zig index 91b8310..8d73fe0 100644 --- a/src/tui/status/keybindstate.zig +++ b/src/tui/status/keybindstate.zig @@ -35,9 +35,12 @@ pub fn layout(_: *Self) Widget.Layout { } pub fn render(self: *Self, theme: *const Widget.Theme) bool { - self.plane.set_base_style(theme.statusbar); + self.plane.set_base_style(theme.editor); self.plane.erase(); self.plane.home(); + self.plane.set_style(theme.statusbar); + _ = self.plane.fill_width(" ", .{}) catch {}; + self.plane.home(); _ = self.plane.print(" {} ", .{keybind.current_key_event_sequence_fmt()}) catch {}; return false; } diff --git a/src/tui/status/keystate.zig b/src/tui/status/keystate.zig index 2afcd2b..c9bbbee 100644 --- a/src/tui/status/keystate.zig +++ b/src/tui/status/keystate.zig @@ -91,13 +91,16 @@ fn render_idle(self: *Self) bool { pub fn render(self: *Self, theme: *const Widget.Theme) bool { const frame = tracy.initZone(@src(), .{ .name = @typeName(@This()) ++ " render" }); defer frame.deinit(); - self.plane.set_base_style(if (self.hover) theme.statusbar_hover else theme.statusbar); self.frame += 1; if (self.frame - self.key_active_frame > self.wipe_after_frames) self.unset_key_all(); + self.plane.set_base_style(theme.editor); self.plane.erase(); self.plane.home(); + self.plane.set_style(if (self.hover) theme.statusbar_hover else theme.statusbar); + _ = self.plane.fill_width(" ", .{}) catch {}; + self.plane.home(); return if (self.keys[0].id > 0) self.render_active() else self.render_idle(); } diff --git a/src/tui/status/linenumstate.zig b/src/tui/status/linenumstate.zig index 2c0c3f7..7de44ee 100644 --- a/src/tui/status/linenumstate.zig +++ b/src/tui/status/linenumstate.zig @@ -41,9 +41,12 @@ pub fn layout(self: *Self, btn: *Button.State(Self)) Widget.Layout { } pub fn render(self: *Self, btn: *Button.State(Self), theme: *const Widget.Theme) bool { - btn.plane.set_base_style(if (btn.active) theme.editor_cursor else if (btn.hover) theme.statusbar_hover else theme.statusbar); + btn.plane.set_base_style(theme.editor); btn.plane.erase(); btn.plane.home(); + btn.plane.set_style(if (btn.active) theme.editor_cursor else if (btn.hover) theme.statusbar_hover else theme.statusbar); + _ = btn.plane.fill_width(" ", .{}) catch {}; + btn.plane.home(); _ = btn.plane.putstr(self.rendered) catch {}; return false; } diff --git a/src/tui/status/minilog.zig b/src/tui/status/minilog.zig index 17e3410..777c724 100644 --- a/src/tui/status/minilog.zig +++ b/src/tui/status/minilog.zig @@ -69,9 +69,12 @@ pub fn render(self: *Self, theme: *const Widget.Theme) bool { const style_normal = theme.statusbar; const style_info: Widget.Theme.Style = .{ .fg = theme.statusbar.fg, .fs = theme.editor_information.fs }; const style_error: Widget.Theme.Style = .{ .fg = theme.editor_error.fg, .fs = theme.editor_error.fs }; - self.plane.set_base_style(style_normal); + self.plane.set_base_style(theme.editor); self.plane.erase(); self.plane.home(); + self.plane.set_style(style_normal); + _ = self.plane.fill_width(" ", .{}) catch {}; + self.plane.home(); self.plane.set_style(if (self.level == .err) style_error else style_info); _ = self.plane.print(" {s} ", .{self.msg.items}) catch {}; return false; diff --git a/src/tui/status/modestate.zig b/src/tui/status/modestate.zig index 486d204..7dbef00 100644 --- a/src/tui/status/modestate.zig +++ b/src/tui/status/modestate.zig @@ -43,9 +43,12 @@ fn is_overlay_mode() bool { pub fn render(_: *void, self: *Button.State(void), theme: *const Widget.Theme) bool { const style_base = theme.statusbar; const style_label = if (self.active) theme.editor_cursor else if (self.hover) theme.editor_selection else theme.statusbar_hover; - self.plane.set_base_style(style_base); + self.plane.set_base_style(theme.editor); self.plane.erase(); self.plane.home(); + self.plane.set_style(style_base); + _ = self.plane.fill_width(" ", .{}) catch {}; + self.plane.home(); self.plane.set_style(style_label); _ = self.plane.fill_width(" ", .{}) catch {}; self.plane.home(); diff --git a/src/tui/status/modstate.zig b/src/tui/status/modstate.zig index 59d0a46..88dc9af 100644 --- a/src/tui/status/modstate.zig +++ b/src/tui/status/modstate.zig @@ -45,9 +45,12 @@ pub fn layout(_: *Self) Widget.Layout { pub fn render(self: *Self, theme: *const Widget.Theme) bool { const frame = tracy.initZone(@src(), .{ .name = @typeName(@This()) ++ " render" }); defer frame.deinit(); - self.plane.set_base_style(if (self.hover) theme.statusbar_hover else theme.statusbar); + self.plane.set_base_style(theme.editor); self.plane.erase(); self.plane.home(); + self.plane.set_style(if (self.hover) theme.statusbar_hover else theme.statusbar); + _ = self.plane.fill_width(" ", .{}) catch {}; + self.plane.home(); _ = self.plane.print(" {s}{s}{s} ", .{ mode(self.mods.ctrl, "Ⓒ ", "🅒 "), diff --git a/src/tui/status/selectionstate.zig b/src/tui/status/selectionstate.zig index 987549f..631e701 100644 --- a/src/tui/status/selectionstate.zig +++ b/src/tui/status/selectionstate.zig @@ -39,9 +39,12 @@ pub fn layout(self: *Self) Widget.Layout { pub fn render(self: *Self, theme: *const Widget.Theme) bool { const frame = tracy.initZone(@src(), .{ .name = @typeName(@This()) ++ " render" }); defer frame.deinit(); - self.plane.set_base_style(theme.statusbar); + self.plane.set_base_style(theme.editor); self.plane.erase(); self.plane.home(); + self.plane.set_style(theme.statusbar); + _ = self.plane.fill_width(" ", .{}) catch {}; + self.plane.home(); _ = self.plane.putstr(self.rendered) catch {}; return false; }