Remove misleading canvas activation controls
This commit is contained in:
@@ -106,35 +106,7 @@ pub fn view<'a>(app: &'a App, owner: Id, out: Column<'a, Message>) -> Element<'a
|
||||
.height(Fill)
|
||||
.style(style::card)
|
||||
.into();
|
||||
let mut navigation = row![
|
||||
out.width(Fill),
|
||||
super::super::canvas_workspace::Control::new(
|
||||
button(
|
||||
text(if presentation.focused {
|
||||
"Restore panels"
|
||||
} else {
|
||||
"Focus canvas"
|
||||
})
|
||||
.size(12)
|
||||
)
|
||||
.padding(6)
|
||||
.on_press(super::super::canvas_workspace::intent(
|
||||
scope,
|
||||
"Panels",
|
||||
Message::ScenarioCanvas(CanvasEvent::Focus(context))
|
||||
)),
|
||||
scope,
|
||||
"Panels",
|
||||
keyboard,
|
||||
Some(super::super::canvas_workspace::intent(
|
||||
scope,
|
||||
"Panels",
|
||||
Message::ScenarioCanvas(CanvasEvent::Focus(context))
|
||||
)),
|
||||
camera
|
||||
)
|
||||
]
|
||||
.spacing(6);
|
||||
let mut navigation = row![out.width(Fill)].spacing(6);
|
||||
if state.can_back(p, context) {
|
||||
navigation =
|
||||
navigation.push(button(text("Back").size(12)).padding(6).on_press_maybe(
|
||||
@@ -148,11 +120,6 @@ pub fn view<'a>(app: &'a App, owner: Id, out: Column<'a, Message>) -> Element<'a
|
||||
keyboard,
|
||||
scale,
|
||||
Message::ScenarioCanvas(CanvasEvent::Shelf(context, Shelf::Selection)),
|
||||
clean.then_some(Message::ScenarioCanvas(CanvasEvent::Camera(
|
||||
context,
|
||||
scope.epoch,
|
||||
super::super::canvas_workspace::Event::Focus
|
||||
))),
|
||||
move |zoom| Message::ScenarioCanvas(CanvasEvent::Zoom(context, zoom)),
|
||||
camera
|
||||
)
|
||||
|
||||
@@ -12,6 +12,15 @@ async fn production_scenario_canvas_keeps_bounds_draft_identity_and_camera_throu
|
||||
let _ = app.update(Message::Page(crate::app::Page::Behavior));
|
||||
app.window_size = Size::new(1100., 700.);
|
||||
let mut mounted = Mounted::new(&mut app).await;
|
||||
let geometry = mounted.geometry(&app);
|
||||
let scope = canvas_workspace::tests::scope(&app);
|
||||
for removed in ["Canvas", "Panels"] {
|
||||
assert!(!geometry.containers.contains_key(&scope.control_id(removed)));
|
||||
}
|
||||
assert!(
|
||||
!canvas_workspace::tests::focused(&mut mounted, &app, "viewport"),
|
||||
"direct editing needs no activation or initial keyboard focus grab"
|
||||
);
|
||||
for size in [Size::new(1100., 700.), Size::new(1440., 900.)] {
|
||||
app.window_size = size;
|
||||
mounted.settle(&mut app).await;
|
||||
@@ -1362,6 +1371,11 @@ async fn production_scenario_camera_external_controls_bounds_and_retained_deltas
|
||||
let size = Size::new(app.window_size.width + 90., app.window_size.height + 35.);
|
||||
let task = app.update(Message::WindowResized(size));
|
||||
mounted.perform(&mut app, task).await;
|
||||
} else if boundary == "Panels" {
|
||||
// Panel layout remains a presentation command, not canvas activation.
|
||||
let context = app.scenario_context().unwrap();
|
||||
let task = app.update(Message::ScenarioCanvas(CanvasEvent::Focus(context)));
|
||||
mounted.perform(&mut app, task).await;
|
||||
} else {
|
||||
let id = scope(&app).control_id(boundary);
|
||||
let at = mounted.geometry(&app).containers[&id].center();
|
||||
@@ -1531,10 +1545,7 @@ async fn production_scenario_keyboard_enters_activates_draws_focus_and_returns_t
|
||||
)));
|
||||
assert_eq!(app.behavior.scenario.presentation.pan, iced::Vector::ZERO);
|
||||
assert!(focused(&mut mounted, &app, "Fit"));
|
||||
tab_to(&mut mounted, &mut app, "Canvas").await;
|
||||
mounted
|
||||
.batch(&mut app, &[key(Named::Enter)], mouse::Cursor::Unavailable)
|
||||
.await;
|
||||
tab_to(&mut mounted, &mut app, "viewport").await;
|
||||
assert!(focused(&mut mounted, &app, "viewport"));
|
||||
mounted
|
||||
.batch(&mut app, &[key(Named::Escape)], mouse::Cursor::Unavailable)
|
||||
|
||||
Reference in New Issue
Block a user