mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-08 22:28:09 +00:00
Tests: a torn-off strip or a new toolbar leaves the palette windows shown
The hidden-toolbar test now expects exactly one show command when the flyout stops drawing, and the comment at palette_window_levels names the All Tools drawer.
This commit is contained in:
@@ -1136,7 +1136,8 @@ pub(crate) fn show(app: &mut VectorcraftApp, ui: &mut egui::Ui) {
|
||||
}
|
||||
let modal = modal_open(app, &ctx);
|
||||
// Palette windows are OS windows of their own, held above the app's window while it is active,
|
||||
// so a dialog, a menu or a tool flyout drawn in the main window would be covered by them.
|
||||
// so a dialog, a menu, a tool flyout or the All Tools drawer drawn in the main window would be
|
||||
// covered by them.
|
||||
#[cfg(not(target_arch = "wasm32"))]
|
||||
palette_window_levels(&ctx, &layout, modal, egui::Popup::is_any_open(&ctx) || crate::menus::menu_open(&ctx) || crate::toolbar::flyout_open(&ctx));
|
||||
let mut blocked = Vec::new();
|
||||
|
||||
@@ -750,7 +750,25 @@ fn a_flyout_or_drawer_of_a_hidden_toolbar_leaves_the_palette_windows_shown() {
|
||||
h.app.run("window.panels", json!({})).unwrap();
|
||||
h.frames(1);
|
||||
assert!(!h.app.ui.toolbar && h.app.ui.flyout.is_some(), "the flyout is left set with the Tools panel hidden");
|
||||
assert_eq!(take_palette_commands(&h, viewport).0.last(), Some(&true), "shown again: the flyout does not draw");
|
||||
assert_eq!(take_palette_commands(&h, viewport).0, [true], "shown again: the flyout does not draw");
|
||||
}
|
||||
|
||||
/// A strip torn off a flyout and a toolbar made with New Toolbar stay on screen like panels, so the
|
||||
/// palette windows stay shown beside them.
|
||||
#[test]
|
||||
fn a_torn_off_strip_or_a_new_toolbar_leaves_the_palette_windows_shown() {
|
||||
let mut h = Harness::new();
|
||||
let viewport = h.float("navigator");
|
||||
h.host.borrow_mut().focus = ViewportId::ROOT;
|
||||
h.frames(2);
|
||||
take_palette_commands(&h, viewport);
|
||||
h.app.run("window.floatTools", json!({"tool": "pen"})).unwrap();
|
||||
h.app.run("window.toolbar.new", json!({"name": "Mine"})).unwrap();
|
||||
h.frames(2);
|
||||
assert!(!h.app.ui.floating_flyouts.is_empty(), "the strip floats");
|
||||
assert!(h.app.ui.custom_toolbars.iter().any(|b| b.shown), "the new toolbar shows");
|
||||
assert_eq!(h.app.ui.flyout, None, "no flyout is open");
|
||||
assert_eq!(take_palette_commands(&h, viewport), (vec![], vec![]), "the palette windows are left as they were");
|
||||
}
|
||||
|
||||
/// The frame in which a click elsewhere closes a flyout or the drawer shows the palette windows, as
|
||||
|
||||
Reference in New Issue
Block a user