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);
|
ui.add_space(8.0);
|
||||||
scroll_area()
|
scroll_area()
|
||||||
|
.id_salt(AccountsView::scroll_id())
|
||||||
.show(ui, |ui| {
|
.show(ui, |ui| {
|
||||||
Self::show_accounts(ui, self.accounts, self.ndb, self.img_cache, self.i18n)
|
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(
|
fn show_accounts(
|
||||||
ui: &mut Ui,
|
ui: &mut Ui,
|
||||||
accounts: &Accounts,
|
accounts: &Accounts,
|
||||||
|
|||||||
@@ -64,14 +64,14 @@ enum AddColumnOption {
|
|||||||
Individual(PubkeySource),
|
Individual(PubkeySource),
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Eq, PartialEq, Debug, Default)]
|
#[derive(Clone, Copy, Eq, PartialEq, Debug, Default, Hash)]
|
||||||
pub enum AddAlgoRoute {
|
pub enum AddAlgoRoute {
|
||||||
#[default]
|
#[default]
|
||||||
Base,
|
Base,
|
||||||
LastPerPubkey,
|
LastPerPubkey,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Clone, Copy, Eq, PartialEq, Debug)]
|
#[derive(Clone, Copy, Eq, PartialEq, Debug, Hash)]
|
||||||
pub enum AddColumnRoute {
|
pub enum AddColumnRoute {
|
||||||
Base,
|
Base,
|
||||||
UndecidedNotification,
|
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> {
|
pub fn ui(&mut self, ui: &mut Ui) -> Option<AddColumnResponse> {
|
||||||
ScrollArea::vertical()
|
ScrollArea::vertical()
|
||||||
|
.id_salt(AddColumnView::scroll_id(&AddColumnRoute::Base))
|
||||||
.show(ui, |ui| {
|
.show(ui, |ui| {
|
||||||
let mut selected_option: Option<AddColumnResponse> = None;
|
let mut selected_option: Option<AddColumnResponse> = None;
|
||||||
for column_option_data in self.get_base_options(ui) {
|
for column_option_data in self.get_base_options(ui) {
|
||||||
|
|||||||
@@ -33,6 +33,10 @@ impl<'a> ConfigureDeckView<'a> {
|
|||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn scroll_id() -> egui::Id {
|
||||||
|
egui::Id::new("configure-deck")
|
||||||
|
}
|
||||||
|
|
||||||
pub fn ui(&mut self, ui: &mut Ui) -> Option<ConfigureDeckResponse> {
|
pub fn ui(&mut self, ui: &mut Ui) -> Option<ConfigureDeckResponse> {
|
||||||
let title_font = egui::FontId::new(
|
let title_font = egui::FontId::new(
|
||||||
notedeck::fonts::get_font_size(ui.ctx(), &NotedeckTextStyle::Heading4),
|
notedeck::fonts::get_font_size(ui.ctx(), &NotedeckTextStyle::Heading4),
|
||||||
@@ -261,6 +265,7 @@ fn glyph_options_ui(
|
|||||||
) -> Option<char> {
|
) -> Option<char> {
|
||||||
let mut selected_glyph = None;
|
let mut selected_glyph = None;
|
||||||
egui::ScrollArea::vertical()
|
egui::ScrollArea::vertical()
|
||||||
|
.id_salt(ConfigureDeckView::scroll_id())
|
||||||
.max_height(max_height)
|
.max_height(max_height)
|
||||||
.show(ui, |ui| {
|
.show(ui, |ui| {
|
||||||
let max_width = ui.available_width();
|
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
|
// return true to save
|
||||||
pub fn ui(&mut self, ui: &mut egui::Ui) -> bool {
|
pub fn ui(&mut self, ui: &mut egui::Ui) -> bool {
|
||||||
ScrollArea::vertical()
|
ScrollArea::vertical()
|
||||||
|
.id_salt(EditProfileView::scroll_id())
|
||||||
.show(ui, |ui| {
|
.show(ui, |ui| {
|
||||||
banner(ui, self.state.banner(), 188.0);
|
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> {
|
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 offset_id = scroll_id.with("scroll_offset");
|
||||||
|
|
||||||
let mut scroll_area = ScrollArea::vertical().id_salt(scroll_id);
|
let mut scroll_area = ScrollArea::vertical().id_salt(scroll_id);
|
||||||
|
|||||||
@@ -36,6 +36,7 @@ impl RelayView<'_> {
|
|||||||
ui.add_space(8.0);
|
ui.add_space(8.0);
|
||||||
|
|
||||||
egui::ScrollArea::vertical()
|
egui::ScrollArea::vertical()
|
||||||
|
.id_salt(RelayView::scroll_id())
|
||||||
.scroll_bar_visibility(egui::scroll_area::ScrollBarVisibility::AlwaysHidden)
|
.scroll_bar_visibility(egui::scroll_area::ScrollBarVisibility::AlwaysHidden)
|
||||||
.auto_shrink([false; 2])
|
.auto_shrink([false; 2])
|
||||||
.show(ui, |ui| {
|
.show(ui, |ui| {
|
||||||
@@ -51,6 +52,10 @@ impl RelayView<'_> {
|
|||||||
|
|
||||||
action
|
action
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn scroll_id() -> egui::Id {
|
||||||
|
egui::Id::new("relay_scroll")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl<'a> RelayView<'a> {
|
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> {
|
fn show_search_results(&mut self, ui: &mut egui::Ui) -> Option<NoteAction> {
|
||||||
egui::ScrollArea::vertical()
|
egui::ScrollArea::vertical()
|
||||||
|
.id_salt(SearchView::scroll_id())
|
||||||
.show(ui, |ui| {
|
.show(ui, |ui| {
|
||||||
let reversed = false;
|
let reversed = false;
|
||||||
TimelineTabView::new(
|
TimelineTabView::new(
|
||||||
@@ -165,6 +166,10 @@ impl<'a, 'd> SearchView<'a, 'd> {
|
|||||||
})
|
})
|
||||||
.inner
|
.inner
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn scroll_id() -> egui::Id {
|
||||||
|
egui::Id::new("search_results")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn execute_search(
|
fn execute_search(
|
||||||
|
|||||||
@@ -74,6 +74,15 @@ impl<'a, 'd> TimelineView<'a, 'd> {
|
|||||||
self.reverse = true;
|
self.reverse = true;
|
||||||
self
|
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)]
|
#[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) {
|
let timeline = if let Some(timeline) = timeline_cache.get_mut(timeline_id) {
|
||||||
timeline
|
timeline
|
||||||
} else {
|
} else {
|
||||||
@@ -114,8 +125,6 @@ fn timeline_ui(
|
|||||||
|
|
||||||
// need this for some reason??
|
// need this for some reason??
|
||||||
ui.add_space(3.0);
|
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"));
|
let show_top_button_id = ui.id().with((scroll_id, "at_top"));
|
||||||
|
|||||||
Reference in New Issue
Block a user