add scroll_id for all views with vertical scroll
Signed-off-by: kernelkind <kernelkind@gmail.com>
This commit is contained in:
@@ -52,6 +52,7 @@ impl<'a> AccountsView<'a> {
|
||||
|
||||
ui.add_space(8.0);
|
||||
scroll_area()
|
||||
.id_salt(AccountsView::scroll_id())
|
||||
.show(ui, |ui| {
|
||||
Self::show_accounts(ui, self.accounts, self.ndb, self.img_cache, self.i18n)
|
||||
})
|
||||
@@ -59,6 +60,10 @@ impl<'a> AccountsView<'a> {
|
||||
})
|
||||
}
|
||||
|
||||
pub fn scroll_id() -> egui::Id {
|
||||
egui::Id::new("accounts")
|
||||
}
|
||||
|
||||
fn show_accounts(
|
||||
ui: &mut Ui,
|
||||
accounts: &Accounts,
|
||||
|
||||
@@ -64,14 +64,14 @@ enum AddColumnOption {
|
||||
Individual(PubkeySource),
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Eq, PartialEq, Debug, Default)]
|
||||
#[derive(Clone, Copy, Eq, PartialEq, Debug, Default, Hash)]
|
||||
pub enum AddAlgoRoute {
|
||||
#[default]
|
||||
Base,
|
||||
LastPerPubkey,
|
||||
}
|
||||
|
||||
#[derive(Clone, Copy, Eq, PartialEq, Debug)]
|
||||
#[derive(Clone, Copy, Eq, PartialEq, Debug, Hash)]
|
||||
pub enum AddColumnRoute {
|
||||
Base,
|
||||
UndecidedNotification,
|
||||
@@ -187,8 +187,13 @@ impl<'a> AddColumnView<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn scroll_id(route: &AddColumnRoute) -> egui::Id {
|
||||
egui::Id::new(("add_column", route))
|
||||
}
|
||||
|
||||
pub fn ui(&mut self, ui: &mut Ui) -> Option<AddColumnResponse> {
|
||||
ScrollArea::vertical()
|
||||
.id_salt(AddColumnView::scroll_id(&AddColumnRoute::Base))
|
||||
.show(ui, |ui| {
|
||||
let mut selected_option: Option<AddColumnResponse> = None;
|
||||
for column_option_data in self.get_base_options(ui) {
|
||||
|
||||
@@ -33,6 +33,10 @@ impl<'a> ConfigureDeckView<'a> {
|
||||
self
|
||||
}
|
||||
|
||||
pub fn scroll_id() -> egui::Id {
|
||||
egui::Id::new("configure-deck")
|
||||
}
|
||||
|
||||
pub fn ui(&mut self, ui: &mut Ui) -> Option<ConfigureDeckResponse> {
|
||||
let title_font = egui::FontId::new(
|
||||
notedeck::fonts::get_font_size(ui.ctx(), &NotedeckTextStyle::Heading4),
|
||||
@@ -261,6 +265,7 @@ fn glyph_options_ui(
|
||||
) -> Option<char> {
|
||||
let mut selected_glyph = None;
|
||||
egui::ScrollArea::vertical()
|
||||
.id_salt(ConfigureDeckView::scroll_id())
|
||||
.max_height(max_height)
|
||||
.show(ui, |ui| {
|
||||
let max_width = ui.available_width();
|
||||
|
||||
@@ -24,9 +24,14 @@ impl<'a> EditProfileView<'a> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn scroll_id() -> egui::Id {
|
||||
egui::Id::new("edit_profile")
|
||||
}
|
||||
|
||||
// return true to save
|
||||
pub fn ui(&mut self, ui: &mut egui::Ui) -> bool {
|
||||
ScrollArea::vertical()
|
||||
.id_salt(EditProfileView::scroll_id())
|
||||
.show(ui, |ui| {
|
||||
banner(ui, self.state.banner(), 188.0);
|
||||
|
||||
|
||||
@@ -59,8 +59,12 @@ impl<'a, 'd> ProfileView<'a, 'd> {
|
||||
}
|
||||
}
|
||||
|
||||
pub fn scroll_id(col_id: usize, profile_pubkey: &Pubkey) -> egui::Id {
|
||||
egui::Id::new(("profile_scroll", col_id, profile_pubkey))
|
||||
}
|
||||
|
||||
pub fn ui(&mut self, ui: &mut egui::Ui) -> Option<ProfileViewAction> {
|
||||
let scroll_id = egui::Id::new(("profile_scroll", self.col_id, self.pubkey));
|
||||
let scroll_id = ProfileView::scroll_id(self.col_id, self.pubkey);
|
||||
let offset_id = scroll_id.with("scroll_offset");
|
||||
|
||||
let mut scroll_area = ScrollArea::vertical().id_salt(scroll_id);
|
||||
|
||||
@@ -36,6 +36,7 @@ impl RelayView<'_> {
|
||||
ui.add_space(8.0);
|
||||
|
||||
egui::ScrollArea::vertical()
|
||||
.id_salt(RelayView::scroll_id())
|
||||
.scroll_bar_visibility(egui::scroll_area::ScrollBarVisibility::AlwaysHidden)
|
||||
.auto_shrink([false; 2])
|
||||
.show(ui, |ui| {
|
||||
@@ -51,6 +52,10 @@ impl RelayView<'_> {
|
||||
|
||||
action
|
||||
}
|
||||
|
||||
pub fn scroll_id() -> egui::Id {
|
||||
egui::Id::new("relay_scroll")
|
||||
}
|
||||
}
|
||||
|
||||
impl<'a> RelayView<'a> {
|
||||
|
||||
@@ -151,6 +151,7 @@ impl<'a, 'd> SearchView<'a, 'd> {
|
||||
|
||||
fn show_search_results(&mut self, ui: &mut egui::Ui) -> Option<NoteAction> {
|
||||
egui::ScrollArea::vertical()
|
||||
.id_salt(SearchView::scroll_id())
|
||||
.show(ui, |ui| {
|
||||
let reversed = false;
|
||||
TimelineTabView::new(
|
||||
@@ -165,6 +166,10 @@ impl<'a, 'd> SearchView<'a, 'd> {
|
||||
})
|
||||
.inner
|
||||
}
|
||||
|
||||
pub fn scroll_id() -> egui::Id {
|
||||
egui::Id::new("search_results")
|
||||
}
|
||||
}
|
||||
|
||||
fn execute_search(
|
||||
|
||||
@@ -74,6 +74,15 @@ impl<'a, 'd> TimelineView<'a, 'd> {
|
||||
self.reverse = true;
|
||||
self
|
||||
}
|
||||
|
||||
pub fn scroll_id(
|
||||
timeline_cache: &TimelineCache,
|
||||
timeline_id: &TimelineKind,
|
||||
col: usize,
|
||||
) -> Option<egui::Id> {
|
||||
let timeline = timeline_cache.get(timeline_id)?;
|
||||
Some(egui::Id::new(("tlscroll", timeline.view_id(col))))
|
||||
}
|
||||
}
|
||||
|
||||
#[allow(clippy::too_many_arguments)]
|
||||
@@ -95,7 +104,9 @@ fn timeline_ui(
|
||||
|
||||
*/
|
||||
|
||||
let scroll_id = {
|
||||
let scroll_id = TimelineView::scroll_id(timeline_cache, timeline_id, col)?;
|
||||
|
||||
{
|
||||
let timeline = if let Some(timeline) = timeline_cache.get_mut(timeline_id) {
|
||||
timeline
|
||||
} else {
|
||||
@@ -114,8 +125,6 @@ fn timeline_ui(
|
||||
|
||||
// need this for some reason??
|
||||
ui.add_space(3.0);
|
||||
|
||||
egui::Id::new(("tlscroll", timeline.view_id(col)))
|
||||
};
|
||||
|
||||
let show_top_button_id = ui.id().with((scroll_id, "at_top"));
|
||||
|
||||
Reference in New Issue
Block a user