mirror of
https://github.com/YGGverse/Yoda.git
synced 2025-09-08 21:01:53 +00:00
fix global actions update on tab init
This commit is contained in:
parent
9eaf599892
commit
2e55fdfd3d
@ -164,18 +164,26 @@ impl Tab {
|
|||||||
item.page.navigation.grab_focus();
|
item.page.navigation.grab_focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Register dynamically created tab components in the HashMap index
|
// Relate with GTK `TabPage` with app `Item`
|
||||||
self.index
|
self.index
|
||||||
.borrow_mut()
|
.borrow_mut()
|
||||||
.insert(item.tab_page.clone(), item.clone());
|
.insert(item.tab_page.clone(), item.clone());
|
||||||
|
|
||||||
// Setup
|
// Setup
|
||||||
// * important to call these actions after index!
|
|
||||||
self.tab_view.set_page_pinned(&item.tab_page, is_pinned);
|
self.tab_view.set_page_pinned(&item.tab_page, is_pinned);
|
||||||
if is_selected {
|
if is_selected {
|
||||||
self.tab_view.set_selected_page(&item.tab_page);
|
self.tab_view.set_selected_page(&item.tab_page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Forcefully update global actions on HashMap index build complete
|
||||||
|
// * `selected_page_notify` runs this action also, just before Item init @TODO
|
||||||
|
update_actions(
|
||||||
|
&self.tab_view,
|
||||||
|
self.tab_view.selected_page().as_ref(),
|
||||||
|
&self.index,
|
||||||
|
&self.window_action,
|
||||||
|
);
|
||||||
|
|
||||||
item
|
item
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -333,12 +341,12 @@ impl Tab {
|
|||||||
false,
|
false,
|
||||||
));
|
));
|
||||||
|
|
||||||
|
// Relate with GTK `TabPage` with app `Item`
|
||||||
self.index
|
self.index
|
||||||
.borrow_mut()
|
.borrow_mut()
|
||||||
.insert(item.tab_page.clone(), item.clone());
|
.insert(item.tab_page.clone(), item.clone());
|
||||||
|
|
||||||
// Restore `Self`
|
// Setup
|
||||||
// * important to call these actions after index!
|
|
||||||
self.tab_view
|
self.tab_view
|
||||||
.set_page_pinned(&item.tab_page, item_record.is_pinned);
|
.set_page_pinned(&item.tab_page, item_record.is_pinned);
|
||||||
|
|
||||||
@ -346,6 +354,15 @@ impl Tab {
|
|||||||
self.tab_view.set_selected_page(&item.tab_page);
|
self.tab_view.set_selected_page(&item.tab_page);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Forcefully update global actions on HashMap index build complete
|
||||||
|
// * `selected_page_notify` runs this action also, just before Item init @TODO
|
||||||
|
update_actions(
|
||||||
|
&self.tab_view,
|
||||||
|
self.tab_view.selected_page().as_ref(),
|
||||||
|
&self.index,
|
||||||
|
&self.window_action,
|
||||||
|
);
|
||||||
|
|
||||||
// Restore children components
|
// Restore children components
|
||||||
item.page.restore(transaction, item_record.id)?;
|
item.page.restore(transaction, item_record.id)?;
|
||||||
}
|
}
|
||||||
@ -437,7 +454,7 @@ fn update_actions(
|
|||||||
|
|
||||||
window_action.change_state(Some(tab_view.page_position(tab_page)));
|
window_action.change_state(Some(tab_view.page_position(tab_page)));
|
||||||
return;
|
return;
|
||||||
}
|
} // @TODO `connect_selected_page_notify` panics on unwrap
|
||||||
}
|
}
|
||||||
// Reset to defaults
|
// Reset to defaults
|
||||||
window_action.home.simple_action.set_enabled(false);
|
window_action.home.simple_action.set_enabled(false);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user