From 029896627cf83c0ea1dec1d618500c4ddebbe8f8 Mon Sep 17 00:00:00 2001 From: William Casarin Date: Wed, 15 May 2024 15:26:19 -0700 Subject: [PATCH] ui: add feathering-resistant hline separator fn "pixel-aligned" Separators get feathered into a blurry mess. This seems to help. Signed-off-by: William Casarin --- src/timeline.rs | 3 ++- src/ui/mod.rs | 8 ++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/timeline.rs b/src/timeline.rs index d441099..4d81dd3 100644 --- a/src/timeline.rs +++ b/src/timeline.rs @@ -99,7 +99,8 @@ pub fn timeline_view(ui: &mut egui::Ui, app: &mut Damus, timeline: usize) { let textmode = app.textmode; let note_ui = ui::Note::new(app, ¬e).note_previews(!textmode); ui.add(note_ui); - ui.add(egui::Separator::default().spacing(0.0)); + ui::hline(ui); + //ui.add(egui::Separator::default().spacing(0.0)); 1 }); diff --git a/src/ui/mod.rs b/src/ui/mod.rs index 5b356f9..21a65c1 100644 --- a/src/ui/mod.rs +++ b/src/ui/mod.rs @@ -39,6 +39,14 @@ pub fn padding( .show(ui, add_contents) } +pub fn hline(ui: &egui::Ui) { + // pixel perfect horizontal line + let rect = ui.available_rect_before_wrap(); + let resize_y = ui.painter().round_to_pixel(rect.top()) - 0.5; + let stroke = ui.style().visuals.widgets.noninteractive.bg_stroke; + ui.painter().hline(rect.x_range(), resize_y, stroke); +} + #[inline] #[allow(unreachable_code)] pub fn is_mobile(_ctx: &egui::Context) -> bool {