This commit is contained in:
galister
2025-12-27 13:59:32 +09:00
parent 35f3748b95
commit 64c8f03dae
26 changed files with 155 additions and 151 deletions

View File

@@ -375,17 +375,16 @@ where
// focus change
if let Some(hovered_id) = hovered_id
&& hovered_id != hit.overlay
&& let Some(old_hovered) = overlays.mut_by_id(hovered_id)
{
if let Some(old_hovered) = overlays.mut_by_id(hovered_id) {
if old_hovered.primary_pointer.is_some_and(|i| i == idx) {
old_hovered.primary_pointer = None;
}
log::debug!("{} on_left (focus changed)", old_hovered.config.name);
old_hovered.config.backend.on_left(app, idx);
old_hovered.hover_pointers[idx] = false;
if !old_hovered.hover_pointers.iter().any(|x| *x) {
overlays.edit_overlay(hovered_id, false, app);
}
if old_hovered.primary_pointer.is_some_and(|i| i == idx) {
old_hovered.primary_pointer = None;
}
log::debug!("{} on_left (focus changed)", old_hovered.config.name);
old_hovered.config.backend.on_left(app, idx);
old_hovered.hover_pointers[idx] = false;
if !old_hovered.hover_pointers.iter().any(|x| *x) {
overlays.edit_overlay(hovered_id, false, app);
}
}
@@ -472,14 +471,14 @@ fn handle_no_hit<O>(
overlays: &mut OverlayWindowManager<O>,
app: &mut AppState,
) {
if let Some(hovered_id) = hovered_id {
if let Some(hovered) = overlays.mut_by_id(hovered_id) {
log::debug!("{} on_left (no hit)", hovered.config.name);
hovered.config.backend.on_left(app, pointer_idx);
hovered.hover_pointers[pointer_idx] = false;
if !hovered.hover_pointers.iter().any(|x| *x) {
overlays.edit_overlay(hovered_id, false, app);
}
if let Some(hovered_id) = hovered_id
&& let Some(hovered) = overlays.mut_by_id(hovered_id)
{
log::debug!("{} on_left (no hit)", hovered.config.name);
hovered.config.backend.on_left(app, pointer_idx);
hovered.hover_pointers[pointer_idx] = false;
if !hovered.hover_pointers.iter().any(|x| *x) {
overlays.edit_overlay(hovered_id, false, app);
}
}
@@ -671,7 +670,7 @@ fn start_grab(
}),
)));
if let Some(hand) = pointer.hand().clone()
if let Some(hand) = pointer.hand()
&& !app.session.config.hide_grab_help
{
let pos = state.positioning;
@@ -708,6 +707,7 @@ fn handle_scale(transform: &mut Affine3A, scroll_y: f32) {
.mul_scalar(0.025f32.mul_add(-scroll_y, 1.0));
}
#[allow(clippy::too_many_lines)]
fn handle_grabbed<O>(idx: usize, overlay: &mut OverlayWindowData<O>, app: &mut AppState)
where
O: Default,
@@ -804,14 +804,13 @@ where
x => x,
};
}
} else if overlay.config.global {
if let Some(active_state) = overlay.config.active_state.as_ref() {
let cur_scale = overlay.config.default_state.transform.x_axis.length();
let tgt_scale = active_state.transform.x_axis.length();
let mat = &mut overlay.config.default_state.transform.matrix3;
*mat = mat.mul_scalar(tgt_scale / cur_scale);
}
} else if overlay.config.global
&& let Some(active_state) = overlay.config.active_state.as_ref()
{
let cur_scale = overlay.config.default_state.transform.x_axis.length();
let tgt_scale = active_state.transform.x_axis.length();
let mat = &mut overlay.config.default_state.transform.matrix3;
*mat = mat.mul_scalar(tgt_scale / cur_scale);
}
overlay.config.pause_movement = false;
if let Some(overlay_state) = overlay.config.active_state.as_mut() {

View File

@@ -110,7 +110,7 @@ impl OverlayWindowData<OpenXrOverlayData> {
.radius(radius)
.central_angle(angle)
.aspect_ratio(aspect_ratio);
layers.push(CompositionLayer::Cylinder(cylinder))
layers.push(CompositionLayer::Cylinder(cylinder));
}
} else {
let posef = helpers::transform_to_posef(&transform);
@@ -125,7 +125,7 @@ impl OverlayWindowData<OpenXrOverlayData> {
width: scale_x,
height: scale_y,
});
layers.push(CompositionLayer::Quad(quad))
layers.push(CompositionLayer::Quad(quad));
}
}
Ok(layers)

View File

@@ -31,6 +31,7 @@ impl SwapchainOpts {
}
}
#[allow(clippy::range_plus_one)]
pub(super) fn create_swapchain(
xr: &XrState,
gfx: Arc<WGfx>,
@@ -78,7 +79,7 @@ pub(super) fn create_swapchain(
let image = Arc::new(unsafe { raw_image.assume_bound() });
let mut wsi = WlxSwapchainImage::default();
for d in 0..extent[2] {
let mut create_info = ImageViewCreateInfo::from_image(&*image);
let mut create_info = ImageViewCreateInfo::from_image(&image);
create_info.subresource_range.array_layers = d..d + 1;
wsi.views.push(ImageView::new(image.clone(), create_info)?);
}

View File

@@ -60,6 +60,7 @@ pub enum PlayspaceTask {
}
#[derive(Debug, Clone)]
#[allow(clippy::enum_variant_names)]
pub enum ModifyPanelCommand {
SetText(String),
SetColor(String),