forked from 1b-agent/opencadstudio-upstream
feat(pan): interactive PAN mode with left-drag (no middle button needed)
The PAN command/tool dispatched a command nobody handled, so it did nothing. Combined with no middle mouse button on a trackpad/web client, there was no way to pan at all (issue 164). PAN (and the "P" alias) now enters a pan mode: a left-button drag pans the view, reusing the existing middle-button pan path. Exit with Esc or by starting another command. While active the crosshair is hidden and the cursor becomes a hand (open when hovering, closed while dragging). PAN/P are also added to command-line autocomplete. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
1 parent
efade01896
commit
69ea050124
5 files changed
+67
-2
No files matched your search
@@ -158,6 +158,11 @@ pub(super) struct DocumentTab {
|
||||
/// of the model-space shader. The scene is still constructed so the
|
||||
/// rest of the code can treat it as a normal tab when reading.
|
||||
pub(super) is_start: bool,
|
||||
/// Interactive PAN mode (the PAN command / tool). While active, a left-
|
||||
/// button drag pans the view instead of selecting — the only pan path on a
|
||||
/// device with no middle mouse button (a trackpad / web client). Exited
|
||||
/// with Esc or by starting another command.
|
||||
pub(super) pan_mode: bool,
|
||||
/// Per-plugin document state (`plugin::BuiltinPlugin` manifest id → state).
|
||||
#[cfg_attr(target_arch = "wasm32", allow(dead_code))]
|
||||
pub(super) plugin_state: HashMap<&'static str, Box<dyn Any + Send + Sync>>,
|
||||
@@ -377,6 +382,7 @@ impl DocumentTab {
|
||||
active_mleader_style: "Standard".to_string(),
|
||||
last_synced_camera_gen: 0,
|
||||
is_start: false,
|
||||
pan_mode: false,
|
||||
plugin_state: HashMap::new(),
|
||||
suspended_cmd: None,
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user