修复侧边栏标签页状态无法保持的问题
This commit is contained in:
@@ -62,7 +62,9 @@ pub fn reading_view(
|
|||||||
let has_bookmark = bookmarks.iter().any(|b| b.section == *current_section && b.page == *current_page);
|
let has_bookmark = bookmarks.iter().any(|b| b.section == *current_section && b.page == *current_page);
|
||||||
|
|
||||||
// --- Sidebar (TOC + Bookmarks) ---
|
// --- Sidebar (TOC + Bookmarks) ---
|
||||||
let mut sidebar_tab: usize = 0;
|
let sidebar_tab_id = ui.make_persistent_id("sidebar_tab");
|
||||||
|
let mut sidebar_tab: usize = ui.data_mut(|d| *d.get_temp_mut_or_default::<usize>(sidebar_tab_id));
|
||||||
|
|
||||||
if *sidebar_open {
|
if *sidebar_open {
|
||||||
egui::SidePanel::left("toc_sidebar")
|
egui::SidePanel::left("toc_sidebar")
|
||||||
.resizable(true)
|
.resizable(true)
|
||||||
@@ -73,8 +75,14 @@ pub fn reading_view(
|
|||||||
let bm_response = ui.selectable_label(sidebar_tab == 1,
|
let bm_response = ui.selectable_label(sidebar_tab == 1,
|
||||||
format!("🔖 书签 ({})", bookmarks.len())
|
format!("🔖 书签 ({})", bookmarks.len())
|
||||||
);
|
);
|
||||||
if toc_response.clicked() { sidebar_tab = 0; }
|
if toc_response.clicked() {
|
||||||
if bm_response.clicked() { sidebar_tab = 1; }
|
sidebar_tab = 0;
|
||||||
|
ui.data_mut(|d| *d.get_temp_mut_or_default::<usize>(sidebar_tab_id) = 0);
|
||||||
|
}
|
||||||
|
if bm_response.clicked() {
|
||||||
|
sidebar_tab = 1;
|
||||||
|
ui.data_mut(|d| *d.get_temp_mut_or_default::<usize>(sidebar_tab_id) = 1);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
ui.separator();
|
ui.separator();
|
||||||
if sidebar_tab == 0 {
|
if sidebar_tab == 0 {
|
||||||
|
|||||||
Reference in New Issue
Block a user