From c734030e875f0ff4f4c8d2bc1afc6294c3db90fe Mon Sep 17 00:00:00 2001 From: True Zhuanjia Date: Tue, 12 May 2026 19:09:44 +0800 Subject: [PATCH] widget resize improvement --- VoidLink/Input/OnScreenWidgetView.swift | 7 +++++-- .../LayoutOnScreenControlsViewController.swift | 9 +++++---- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/VoidLink/Input/OnScreenWidgetView.swift b/VoidLink/Input/OnScreenWidgetView.swift index 27fb2ab7..6de1ddef 100644 --- a/VoidLink/Input/OnScreenWidgetView.swift +++ b/VoidLink/Input/OnScreenWidgetView.swift @@ -1124,6 +1124,9 @@ import ObjectiveC.runtime self.showStickIndicator() self.updateStickIndicator() } + if self.isDirectionPad { + self.setupLrudDirectionIndicatorlayers() + } if self.isFolder { QUICK_TAP_TIME_INTERVAL = 0.15 } @@ -1655,14 +1658,14 @@ import ObjectiveC.runtime downIndicator.isHidden = true } - if !touchPointAnchored { + if !touchPointAnchored || OnScreenWidgetView.editMode { let axisdiameter = self.getDiameter(lengthFactor: UIDevice.current.userInterfaceIdiom == .phone ? 0.27 : 0.35) let axisSize = CGSize(width: axisdiameter, height: axisdiameter) self.stickWheelAxis.removeFromSuperlayer() self.stickWheelAxis = GraphicUtils.makeSVGLayer(from: "StickWheelAxis-0.75", in: self.layer, targetSize: axisSize) GraphicUtils.changeColor(layer: self.stickWheelAxis, color: UIColor(white: 1, alpha: 0.5)) self.layer.addSublayer(self.stickWheelAxis) - self.stickWheelAxis.isHidden = false + self.stickWheelAxis.isHidden = !OnScreenWidgetView.editMode } setupMovementThresholdPreviewLayersIfNeeded() diff --git a/VoidLink/ViewControllers/CustomOSCViewControl/LayoutOnScreenControlsViewController.swift b/VoidLink/ViewControllers/CustomOSCViewControl/LayoutOnScreenControlsViewController.swift index 2ebe620d..d572552d 100644 --- a/VoidLink/ViewControllers/CustomOSCViewControl/LayoutOnScreenControlsViewController.swift +++ b/VoidLink/ViewControllers/CustomOSCViewControl/LayoutOnScreenControlsViewController.swift @@ -1930,13 +1930,14 @@ final class LayoutOnScreenControlsViewController: UIViewController, OnScreenWidg } @objc private func widgetSizeSliderMoved(_ sender: UISlider) { - widgetSizeLabel.text = LocalizationHelper.localizedString(forKey: "Size: %.2f", sender.value) - widgetHeightLabel.text = LocalizationHelper.localizedString(forKey: "Height: %.2f", sender.value) - widgetHeightSlider.value = sender.value if let selectedWidgetView, widgetViewSelected { selectedWidgetView.translatesAutoresizingMaskIntoConstraints = true + let aspectRatio = selectedWidgetView.heightFactor / selectedWidgetView.widthFactor selectedWidgetView.widthFactor = CGFloat(sender.value) - selectedWidgetView.heightFactor = CGFloat(sender.value) + selectedWidgetView.heightFactor = selectedWidgetView.widthFactor * aspectRatio + widgetSizeLabel.text = LocalizationHelper.localizedString(forKey: "Size: %.2f", sender.value) + widgetHeightLabel.text = LocalizationHelper.localizedString(forKey: "Height: %.2f", selectedWidgetView.heightFactor) + widgetHeightSlider.value = Float(selectedWidgetView.heightFactor) } if let selectedControllerLayer, controllerLayerSelected { layoutOSC.resizeControllerLayer(with: selectedControllerLayer, and: CGFloat(sender.value))