feat: Space drag moves overlays

This commit is contained in:
galister 2026-07-24 02:57:11 +09:00
parent 0613f94be6
commit b4e2fd782c
13 changed files with 35 additions and 14 deletions

View File

@ -207,7 +207,8 @@
"POINTER_ACCELERATION": "Mausbeschleunigung",
"POINTER_ACCELERATION_HELP": "An: Adaptive Mausbeschleunigung\nAus: Konstante Geschwindigkeit",
"POINTER_SPEED": "Mausgeschwindigkeit",
"INPUT_CAPTURE_METHOD_HELP": "Ermöglicht die Nutzung physischer Peripheriegeräte innerhalb von WayVR.\n Super+Z: Eingabe zwischen WayVR und echtem Desktop umschalten\n Super+X: Zwischen WayVR-Apps umschalten"
"INPUT_CAPTURE_METHOD_HELP": "Ermöglicht die Nutzung physischer Peripheriegeräte innerhalb von WayVR.\n Super+Z: Eingabe zwischen WayVR und echtem Desktop umschalten\n Super+X: Zwischen WayVR-Apps umschalten",
"SPACE_DRAG_AFFECTS_WORLD": "Space-Drag bewegt Overlays"
},
"HELLO": "Hallo!",
"AUDIO": {
@ -328,4 +329,4 @@
"REMOVE_FROM_FAVOURITES": "Aus Favoriten entfernen",
"EMPTY": "Leer",
"PINNED_APPS": "Angepinnte Anwendungen"
}
}

View File

@ -196,6 +196,7 @@
"SKYMAP_ALREADY_DOWNLOADED": "This skymap is already downloaded. Select desired action.",
"SPACE_DRAG": "Space drag",
"SPACE_DRAG_MULTIPLIER": "Space drag multiplier",
"SPACE_DRAG_AFFECTS_WORLD": "Space drag moves overlays",
"SPACE_DRAG_UNLOCKED": "Allow space drag on all axes",
"SPACE_GRAVITY_DAMPING": "Damping",
"SPACE_GRAVITY_DAMPING_HELP": "Artificial drag to slow down movement. 0.1 - high drag, 1.0 - no drag",

View File

@ -207,7 +207,8 @@
"POINTER_ACCELERATION": "Aceleración del ratón",
"POINTER_ACCELERATION_HELP": "Activado: Aceleración adaptativa del ratón\nDesactivado: Velocidad constante",
"POINTER_SPEED": "Velocidad del ratón",
"INPUT_CAPTURE_METHOD_HELP": "Permite usar periféricos físicos dentro de WayVR.\n Super+Z: Cambiar la entrada entre WayVR y el escritorio real\n Super+X: Cambiar entre aplicaciones de WayVR"
"INPUT_CAPTURE_METHOD_HELP": "Permite usar periféricos físicos dentro de WayVR.\n Super+Z: Cambiar la entrada entre WayVR y el escritorio real\n Super+X: Cambiar entre aplicaciones de WayVR",
"SPACE_DRAG_AFFECTS_WORLD": "Space-drag mueve las superposiciones"
},
"HELLO": "¡Hola!",
"AUDIO": {
@ -328,4 +329,4 @@
"REMOVE_FROM_FAVOURITES": "Eliminar de favoritos",
"EMPTY": "Vacío",
"PINNED_APPS": "Aplicaciones ancladas"
}
}

View File

@ -228,7 +228,8 @@
"POINTER_ACCELERATION": "Accelerazione del mouse",
"POINTER_ACCELERATION_HELP": "Attivo: Accelerazione adattiva del mouse\nDisattivo: Velocità costante",
"POINTER_SPEED": "Velocità mouse",
"INPUT_CAPTURE_METHOD_HELP": "Consente l'uso di periferiche fisiche all'interno di WayVR.\n Super+Z: Passa l'input tra WayVR e il desktop reale\n Super+X: Passa tra le app di WayVR"
"INPUT_CAPTURE_METHOD_HELP": "Consente l'uso di periferiche fisiche all'interno di WayVR.\n Super+Z: Passa l'input tra WayVR e il desktop reale\n Super+X: Passa tra le app di WayVR",
"SPACE_DRAG_AFFECTS_WORLD": "Lo Space-drag sposta gli overlay"
},
"APPLICATION_LAUNCHER": "Lanciatore applicazioni",
"APPLICATION_STARTED": "Applicazione avviata",
@ -328,4 +329,4 @@
"REMOVE_FROM_FAVOURITES": "Rimuovi dai preferiti",
"EMPTY": "Vuoto",
"PINNED_APPS": "Applicazioni fissate"
}
}

View File

@ -207,7 +207,8 @@
"POINTER_ACCELERATION": "マウス加速",
"POINTER_ACCELERATION_HELP": "オン: 適応型マウス加速\nオフ: 一定速度",
"POINTER_SPEED": "マウス速度",
"INPUT_CAPTURE_METHOD_HELP": "WayVR内で物理周辺機器を使用できるようにします。\n Super+Z: WayVRと実際のデスクトップ間で入力を切り替え\n Super+X: WayVRアプリ間で切り替え"
"INPUT_CAPTURE_METHOD_HELP": "WayVR内で物理周辺機器を使用できるようにします。\n Super+Z: WayVRと実際のデスクトップ間で入力を切り替え\n Super+X: WayVRアプリ間で切り替え",
"SPACE_DRAG_AFFECTS_WORLD": "スペースドラッグでオーバーレイを移動"
},
"HELLO": "こんにちは!",
"AUDIO": {
@ -328,4 +329,4 @@
"REMOVE_FROM_FAVOURITES": "お気に入りから削除",
"EMPTY": "空",
"PINNED_APPS": "ピン留めされたアプリケーション"
}
}

View File

@ -202,7 +202,8 @@
"POINTER_ACCELERATION": "Akceleracja myszy",
"POINTER_ACCELERATION_HELP": "Wł.: Adaptacyjna akceleracja myszy\nWył.: Stała prędkość",
"POINTER_SPEED": "Prędkość myszy",
"INPUT_CAPTURE_METHOD_HELP": "Umożliwia korzystanie z fizycznych urządzeń peryferyjnych wewnątrz WayVR.\n Super+Z: Przełącz wejście między WayVR a rzeczywistym pulpitem\n Super+X: Przełącz między aplikacjami WayVR"
"INPUT_CAPTURE_METHOD_HELP": "Umożliwia korzystanie z fizycznych urządzeń peryferyjnych wewnątrz WayVR.\n Super+Z: Przełącz wejście między WayVR a rzeczywistym pulpitem\n Super+X: Przełącz między aplikacjami WayVR",
"SPACE_DRAG_AFFECTS_WORLD": "Space-drag przesuwa nakładki"
},
"APPLICATION_LAUNCHER": "Uruchamiacz aplikacji",
"APPLICATIONS": "Aplikacje",
@ -328,4 +329,4 @@
"REMOVE_FROM_FAVOURITES": "Usuń z ulubionych",
"EMPTY": "Puste",
"PINNED_APPS": "Przypięte aplikacje"
}
}

View File

@ -228,7 +228,8 @@
"POINTER_ACCELERATION": "鼠标加速",
"POINTER_ACCELERATION_HELP": "开启:自适应鼠标加速\n关闭恒定速度",
"POINTER_SPEED": "鼠标速度",
"INPUT_CAPTURE_METHOD_HELP": "允许在 WayVR 中使用物理外设。\n Super+Z: 在 WayVR 和真实桌面之间切换输入\n Super+X: 在 WayVR 应用之间切换"
"INPUT_CAPTURE_METHOD_HELP": "允许在 WayVR 中使用物理外设。\n Super+Z: 在 WayVR 和真实桌面之间切换输入\n Super+X: 在 WayVR 应用之间切换",
"SPACE_DRAG_AFFECTS_WORLD": "空间拖拽移动覆盖层"
},
"APPLICATION_LAUNCHER": "应用启动器",
"APPLICATION_STARTED": "应用已启动",
@ -328,4 +329,4 @@
"REMOVE_FROM_FAVOURITES": "从收藏中移除",
"EMPTY": "空",
"PINNED_APPS": "已固定应用程序"
}
}

View File

@ -339,6 +339,7 @@ pub(crate) enum SettingType {
ScrollSpeed,
SnapAngleDeg,
SetsOnWatch,
SpaceDragAffectsWorld,
SpaceDragMultiplier,
SpaceDragUnlocked,
SpaceGravityDamping,
@ -390,6 +391,7 @@ impl SettingType {
Self::MouseAcceleration => &mut config.wvr_mouse_acceleration,
Self::ScreenRenderDown => &mut config.screen_render_down,
Self::SetsOnWatch => &mut config.sets_on_watch,
Self::SpaceDragAffectsWorld => &mut config.space_drag_affects_world,
Self::SpaceDragUnlocked => &mut config.space_drag_unlocked,
Self::SpaceGravityEnabled => &mut config.space_gravity_enabled,
Self::SpaceRotateUnlocked => &mut config.space_rotate_unlocked,
@ -534,6 +536,7 @@ impl SettingType {
Self::EnableWatch => Ok("APP_SETTINGS.ENABLE_WATCH"),
Self::SetsOnWatch => Ok("APP_SETTINGS.SETS_ON_WATCH"),
Self::SnapAngleDeg => Ok("APP_SETTINGS.SNAP_ANGLE_DEG"),
Self::SpaceDragAffectsWorld => Ok("APP_SETTINGS.SPACE_DRAG_AFFECTS_WORLD"),
Self::SpaceDragMultiplier => Ok("APP_SETTINGS.SPACE_DRAG_MULTIPLIER"),
Self::SpaceDragUnlocked => Ok("APP_SETTINGS.SPACE_DRAG_UNLOCKED"),
Self::SpaceGravityDamping => Ok("APP_SETTINGS.SPACE_GRAVITY_DAMPING"),

View File

@ -83,6 +83,8 @@ impl State {
options_checkbox(par.mp, id_common_options_parent, SettingType::SpaceDragUnlocked)?;
options_checkbox(par.mp, id_common_options_parent, SettingType::SpaceDragAffectsWorld)?;
options_slider_f32(
par.mp,
id_common_options_parent,

View File

@ -149,7 +149,9 @@ impl PlayspaceMover {
let overlay_offset = data.pose.inverse().transform_vector3a(relative_pos) * -1.0;
let before_pose = data.pose;
data.pose.translation += relative_pos;
playspace_common::shift_world(overlays, &mut app.anchor, &before_pose, &data.pose);
if !app.session.config.space_drag_affects_world {
playspace_common::shift_world(overlays, &mut app.anchor, &before_pose, &data.pose);
}
data.hand_pose = new_hand;
if self.universe == ETrackingUniverseOrigin::TrackingUniverseStanding {

View File

@ -180,7 +180,9 @@ impl PlayspaceMover {
let before_pose = data.pose;
data.pose.translation += relative_pos;
playspace_common::shift_world(overlays, &mut app.anchor, &before_pose, &data.pose);
if !app.session.config.space_drag_affects_world {
playspace_common::shift_world(overlays, &mut app.anchor, &before_pose, &data.pose);
}
data.hand_pose = new_hand;
apply_offset(data.pose, &mut monado.ipc);

View File

@ -165,6 +165,7 @@ pub struct AutoSettings {
pub screen_render_down: bool,
pub pointer_lerp_factor: f32,
pub space_drag_unlocked: bool,
pub space_drag_affects_world: bool,
pub space_gravity_damping: f32,
pub space_gravity_enabled: bool,
pub space_gravity_fling_strength: f32,
@ -235,6 +236,7 @@ pub fn save_settings(config: &GeneralConfig) -> anyhow::Result<()> {
screen_render_down: config.screen_render_down,
pointer_lerp_factor: config.pointer_lerp_factor,
space_drag_unlocked: config.space_drag_unlocked,
space_drag_affects_world: config.space_drag_affects_world,
space_gravity_damping: config.space_gravity_damping,
space_gravity_enabled: config.space_gravity_enabled,
space_gravity_fling_strength: config.space_gravity_fling_strength,

View File

@ -415,6 +415,9 @@ pub struct GeneralConfig {
#[serde(default = "def_true")]
pub space_drag_unlocked: bool,
#[serde(default)]
pub space_drag_affects_world: bool,
#[serde(default)]
pub space_rotate_unlocked: bool,