commit c1c4c1cc7a2d53ddfec8d9f7214b52a9fbde94b0
parent 8c49e6e5f60dab531301d6c493996e1337941246
Author: kernelkind <kernelkind@gmail.com>
Date: Sun, 2 Feb 2025 16:52:10 -0500
supply inner_rect for PostView
Signed-off-by: kernelkind <kernelkind@gmail.com>
Diffstat:
5 files changed, 29 insertions(+), 8 deletions(-)
diff --git a/crates/notedeck_columns/src/app.rs b/crates/notedeck_columns/src/app.rs
@@ -500,7 +500,8 @@ fn render_damus_mobile(app: &mut Damus, app_ctx: &mut AppContext<'_>, ui: &mut e
//let routes = app.timelines[0].routes.clone();
if !app.columns(app_ctx.accounts).columns().is_empty()
- && nav::render_nav(0, app, app_ctx, ui).process_render_nav_response(app, app_ctx)
+ && nav::render_nav(0, ui.available_rect_before_wrap(), app, app_ctx, ui)
+ .process_render_nav_response(app, app_ctx)
&& !app.tmp_columns
{
storage::save_decks_cache(app_ctx.path, &app.decks_cache);
@@ -584,14 +585,17 @@ fn timelines_view(ui: &mut egui::Ui, sizes: Size, app: &mut Damus, ctx: &mut App
for col_index in 0..num_cols {
strip.cell(|ui| {
let rect = ui.available_rect_before_wrap();
- responses.push(nav::render_nav(col_index, app, ctx, ui));
+ let v_line_stroke = ui.visuals().widgets.noninteractive.bg_stroke;
+ let inner_rect = {
+ let mut inner = rect;
+ inner.set_right(rect.right() - v_line_stroke.width);
+ inner
+ };
+ responses.push(nav::render_nav(col_index, inner_rect, app, ctx, ui));
// vertical line
- ui.painter().vline(
- rect.right(),
- rect.y_range(),
- ui.visuals().widgets.noninteractive.bg_stroke,
- );
+ ui.painter()
+ .vline(rect.right(), rect.y_range(), v_line_stroke);
});
//strip.cell(|ui| timeline::timeline_view(ui, app, timeline_ind));
diff --git a/crates/notedeck_columns/src/nav.rs b/crates/notedeck_columns/src/nav.rs
@@ -241,6 +241,7 @@ fn render_nav_body(
top: &Route,
depth: usize,
col: usize,
+ inner_rect: egui::Rect,
) -> Option<RenderNavAction> {
match top {
Route::Timeline(kind) => render_timeline_route(
@@ -308,6 +309,7 @@ fn render_nav_body(
ctx.note_cache,
ctx.img_cache,
¬e,
+ inner_rect,
)
.id_source(id)
.show(ui)
@@ -342,6 +344,7 @@ fn render_nav_body(
ctx.img_cache,
draft,
¬e,
+ inner_rect,
)
.id_source(id)
.show(ui)
@@ -362,6 +365,7 @@ fn render_nav_body(
ctx.img_cache,
ctx.note_cache,
kp,
+ inner_rect,
)
.ui(&txn, ui);
@@ -473,6 +477,7 @@ fn render_nav_body(
#[must_use = "RenderNavResponse must be handled by calling .process_render_nav_response(..)"]
pub fn render_nav(
col: usize,
+ inner_rect: egui::Rect,
app: &mut Damus,
ctx: &mut AppContext<'_>,
ui: &mut egui::Ui,
@@ -508,7 +513,7 @@ pub fn render_nav(
.show(ui),
NavUiType::Body => {
if let Some(top) = nav.routes().last() {
- render_nav_body(ui, app, ctx, top, nav.routes().len(), col)
+ render_nav_body(ui, app, ctx, top, nav.routes().len(), col, inner_rect)
} else {
None
}
diff --git a/crates/notedeck_columns/src/ui/note/post.rs b/crates/notedeck_columns/src/ui/note/post.rs
@@ -22,6 +22,7 @@ pub struct PostView<'a> {
note_cache: &'a mut NoteCache,
poster: FilledKeypair<'a>,
id_source: Option<egui::Id>,
+ inner_rect: egui::Rect,
}
#[derive(Clone)]
@@ -84,6 +85,7 @@ impl<'a> PostView<'a> {
img_cache: &'a mut ImageCache,
note_cache: &'a mut NoteCache,
poster: FilledKeypair<'a>,
+ inner_rect: egui::Rect,
) -> Self {
let id_source: Option<egui::Id> = None;
PostView {
@@ -94,6 +96,7 @@ impl<'a> PostView<'a> {
poster,
id_source,
post_type,
+ inner_rect,
}
}
@@ -535,6 +538,7 @@ mod preview {
app.img_cache,
app.note_cache,
self.poster.to_filled(),
+ ui.available_rect_before_wrap(),
)
.ui(&txn, ui);
}
diff --git a/crates/notedeck_columns/src/ui/note/quote_repost.rs b/crates/notedeck_columns/src/ui/note/quote_repost.rs
@@ -14,6 +14,7 @@ pub struct QuoteRepostView<'a> {
draft: &'a mut Draft,
quoting_note: &'a nostrdb::Note<'a>,
id_source: Option<egui::Id>,
+ inner_rect: egui::Rect,
}
impl<'a> QuoteRepostView<'a> {
@@ -24,6 +25,7 @@ impl<'a> QuoteRepostView<'a> {
img_cache: &'a mut ImageCache,
draft: &'a mut Draft,
quoting_note: &'a nostrdb::Note<'a>,
+ inner_rect: egui::Rect,
) -> Self {
let id_source: Option<egui::Id> = None;
QuoteRepostView {
@@ -34,6 +36,7 @@ impl<'a> QuoteRepostView<'a> {
draft,
quoting_note,
id_source,
+ inner_rect,
}
}
@@ -48,6 +51,7 @@ impl<'a> QuoteRepostView<'a> {
self.img_cache,
self.note_cache,
self.poster,
+ self.inner_rect,
)
.id_source(id)
.ui(self.quoting_note.txn().unwrap(), ui)
diff --git a/crates/notedeck_columns/src/ui/note/reply.rs b/crates/notedeck_columns/src/ui/note/reply.rs
@@ -14,6 +14,7 @@ pub struct PostReplyView<'a> {
draft: &'a mut Draft,
note: &'a nostrdb::Note<'a>,
id_source: Option<egui::Id>,
+ inner_rect: egui::Rect,
}
impl<'a> PostReplyView<'a> {
@@ -24,6 +25,7 @@ impl<'a> PostReplyView<'a> {
note_cache: &'a mut NoteCache,
img_cache: &'a mut ImageCache,
note: &'a nostrdb::Note<'a>,
+ inner_rect: egui::Rect,
) -> Self {
let id_source: Option<egui::Id> = None;
PostReplyView {
@@ -34,6 +36,7 @@ impl<'a> PostReplyView<'a> {
note_cache,
img_cache,
id_source,
+ inner_rect,
}
}
@@ -83,6 +86,7 @@ impl<'a> PostReplyView<'a> {
self.img_cache,
self.note_cache,
self.poster,
+ self.inner_rect,
)
.id_source(id)
.ui(self.note.txn().unwrap(), ui)