commit 391900d393dc7e5952df80960052e4e83324cda1
parent 11700d621776f1afa44bf010182222e785970c10
Author: kernelkind <kernelkind@gmail.com>
Date: Sat, 13 Sep 2025 14:22:56 -0400
make `tabs_ui` return `InnerResponse`
Signed-off-by: kernelkind <kernelkind@gmail.com>
Diffstat:
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/crates/notedeck_columns/src/ui/profile/mod.rs b/crates/notedeck_columns/src/ui/profile/mod.rs
@@ -89,12 +89,13 @@ impl<'a, 'd> ProfileView<'a, 'd> {
break 's action;
};
- profile_timeline.selected_view = tabs_ui(
+ let tabs_resp = tabs_ui(
ui,
self.note_context.i18n,
profile_timeline.selected_view,
&profile_timeline.views,
);
+ profile_timeline.selected_view = tabs_resp.inner;
let reversed = false;
// poll for new notes and insert them into our existing notes
diff --git a/crates/notedeck_columns/src/ui/timeline.rs b/crates/notedeck_columns/src/ui/timeline.rs
@@ -118,7 +118,8 @@ fn timeline_ui(
note_context.i18n,
timeline.selected_view,
&timeline.views,
- );
+ )
+ .inner;
// need this for some reason??
ui.add_space(3.0);
@@ -276,7 +277,7 @@ pub fn tabs_ui(
i18n: &mut Localization,
selected: usize,
views: &[TimelineTab],
-) -> usize {
+) -> egui::InnerResponse<usize> {
ui.spacing_mut().item_spacing.y = 0.0;
let tab_res = egui_tabs::Tabs::new(views.len() as i32)
@@ -324,7 +325,9 @@ pub fn tabs_ui(
let sel = tab_res.selected().unwrap_or_default();
- let (underline, underline_y) = tab_res.inner()[sel as usize].inner;
+ let res_inner = &tab_res.inner()[sel as usize];
+
+ let (underline, underline_y) = res_inner.inner;
let underline_width = underline.span();
let tab_anim_id = ui.id().with("tab_anim");
@@ -351,7 +354,7 @@ pub fn tabs_ui(
ui.painter().hline(underline, underline_y, stroke);
- sel as usize
+ egui::InnerResponse::new(sel as usize, res_inner.response.clone())
}
fn get_label_width(ui: &mut egui::Ui, text: &str) -> f32 {