Skip to content

Fix modal blur navigation - #39

Merged
futamura merged 3 commits into
developfrom
fix/modal-blur-navigation
May 25, 2026
Merged

Fix modal blur navigation#39
futamura merged 3 commits into
developfrom
fix/modal-blur-navigation

Conversation

@futamura

Copy link
Copy Markdown
Owner

Summary

  • Stabilize the Example FluidModal navigation UI path.
  • Restore color blur backgrounds while keeping the root navigation visible.
  • Move modal blur rendering off the main thread and tune the Example blur radius.

Verification

  • xcodebuild test -project Fluidable.xcodeproj -scheme Fluidable -destination 'platform=iOS Simulator,id=5F3F8F67-5FEC-459B-AF9B-E7E7D4BCEBBF' -derivedDataPath .agents/tmp/deriveddata-modal-perf -only-testing:FluidableTests/UIKitSpec CODE_SIGNING_ALLOWED=NO
  • xcodebuild test -project Fluidable.xcodeproj -scheme Fluidable -destination 'platform=iOS Simulator,id=5F3F8F67-5FEC-459B-AF9B-E7E7D4BCEBBF' -derivedDataPath .agents/tmp/deriveddata-modal-perf -only-testing:'FluidableUITests/MainSpec/arm64_iOS26.5_Portrait, NavigationFluidModal, FinishAnimatedPresent_FinishAnimatedDismissWithBackground()' -only-testing:'FluidableUITests/MainSpec/arm64_iOS26.5_Portrait, NavigationFluidModal, KeepRootNavigationVisibleAndAlignFluidModalContent()' CODE_SIGNING_ALLOWED=NO
  • swiftlint lint Sources/View/FluidBackgroundView.swift Tests/UIKitSpec.swift Example/Source/Model/RootModel.swift
  • git diff --check

futamura added 3 commits May 24, 2026 21:22
Capture the window behind transition containers so navigation-backed modals blur visible root content instead of an empty container.
let referenceView: UIView? = navBar.superview ?? self.view
let cellFrame: CGRect = cell.convert(cell.bounds, to: referenceView)
let navBarFrame: CGRect = navBar.convert(navBar.bounds, to: referenceView)
if navBarFrame.intersects(cellFrame) { self.navigationController?.setNavigationBarHidden(true, animated: true) }

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line Length Violation: Line should be 120 characters or less: currently 128 characters (line_length)

internal class FluidBlurredBackgroundView: BlurView, FluidBackgroundCompatible {
internal class FluidBlurredBackgroundView: UIView, FluidBackgroundCompatible {
private static let ciContext = CIContext(options: nil)
private static let blurQueue = DispatchQueue(label: "Fluidable.FluidBlurredBackgroundView.blur", qos: .userInitiated)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line Length Violation: Line should be 120 characters or less: currently 121 characters (line_length)

Comment thread Tests/UIKitSpec.swift
blue: CGFloat(pixel[2]) / 255,
alpha: CGFloat(pixel[3]) / 255)
}
}

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

File Length Violation: File should contain 400 lines or less: currently contains 3320 (file_length)


let visibleView: XCUIElement = app.otherElements.element(matching: .other, identifier: model.visibleControllerViewAccessibilityIdentifier)
let scrollView: XCUIElement = app.scrollViews.element(matching: .scrollView, identifier: model.parentScrollViewAccessibilityIdentifier)
let scrollTopView: XCUIElement = app.otherElements.element(matching: .other, identifier: model.parentScrollTopViewAccessibilityIdentifier)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line Length Violation: Line should be 120 characters or less: currently 146 characters (line_length)

self.assertEventually(optionButton.exists)

let visibleView: XCUIElement = app.otherElements.element(matching: .other, identifier: model.visibleControllerViewAccessibilityIdentifier)
let scrollView: XCUIElement = app.scrollViews.element(matching: .scrollView, identifier: model.parentScrollViewAccessibilityIdentifier)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line Length Violation: Line should be 120 characters or less: currently 143 characters (line_length)

let optionButton = app.buttons["Option"]
self.assertEventually(optionButton.exists)

let visibleView: XCUIElement = app.otherElements.element(matching: .other, identifier: model.visibleControllerViewAccessibilityIdentifier)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Line Length Violation: Line should be 120 characters or less: currently 146 characters (line_length)

@futamura
futamura merged commit 542d50c into develop May 25, 2026
2 checks passed
@futamura
futamura deleted the fix/modal-blur-navigation branch May 25, 2026 04:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant