Skip to content

[inflight/current] [Windows/Mac] Fix Shell page title leaking into native window/status bar - #36334

Merged
kubaflo merged 10 commits into
dotnet:inflight/currentfrom
devanathan-vaithiyanathan:fix-36225
Jul 9, 2026
Merged

[inflight/current] [Windows/Mac] Fix Shell page title leaking into native window/status bar#36334
kubaflo merged 10 commits into
dotnet:inflight/currentfrom
devanathan-vaithiyanathan:fix-36225

Conversation

@devanathan-vaithiyanathan

@devanathan-vaithiyanathan devanathan-vaithiyanathan commented Jul 3, 2026

Copy link
Copy Markdown
Contributor

Note

Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!

Issue Details

Due to the changes introduced in PR #35800, when using Shell on Windows and macOS (Mac Catalyst), the current page's title (intended for the in-app navigation/title bar) was also being displayed in the native window title bar and status bar.

Description of Changes

The SetValueFromRenderer(Shell.TitleProperty, title) call was moved inside the if (TitleView != null) block, so Shell.Title is only updated by the renderer when a TitleView is present. Without a TitleView, Shell.Title is left untouched, preventing the page title from propagating to the native window/status bar.

Issues Fixed

Fixes #36225

Tested the behavior in the following platforms.

  • Android
  • Windows
  • iOS
  • Mac
Before After
Mac
Mac

@dotnet-policy-service dotnet-policy-service Bot added the partner/syncfusion Issues / PR's with Syncfusion collaboration label Jul 3, 2026
@github-actions github-actions Bot added the area-controls-shell Shell Navigation, Routes, Tabs, Flyout label Jul 3, 2026
@devanathan-vaithiyanathan devanathan-vaithiyanathan changed the title [Windows/Mac] Fix Shell page title leaking into native window/status bar [Windows/Mac][inflight/current] Fix Shell page title leaking into native window/status bar Jul 3, 2026
@devanathan-vaithiyanathan devanathan-vaithiyanathan changed the title [Windows/Mac][inflight/current] Fix Shell page title leaking into native window/status bar [inflight/current] [Windows/Mac] Fix Shell page title leaking into native window/status bar Jul 3, 2026
@Tamilarasan-Paranthaman Tamilarasan-Paranthaman added the community ✨ Community Contribution label Jul 3, 2026
@sheiksyedm
sheiksyedm marked this pull request as ready for review July 6, 2026 10:40
@kubaflo
kubaflo force-pushed the inflight/current branch from 37a89e4 to 86758bd Compare July 6, 2026 16:06
@github-actions

github-actions Bot commented Jul 7, 2026

Copy link
Copy Markdown
Contributor

Skill Validation Results

@devanathan-vaithiyanathan — new skill validation results are available based on this last commit: fb1ea05.
To request a fresh validation after new comments or commits, comment /evaluate-skills.

Overall Failed Static Passed LLM Failed Skills 20 Agents 6

Skill Validation Resultsfb1ea05 · [inflight/current] [Windows/Mac] Fix Shell page title leaking into native window/status bar · 2026-07-07T06:53:53Z

✅ Static Checks Passed

Skills: 20 | Eval specs linted: 7

Full lint output
── .github/skills/agentic-labeler/tests/eval.vally.yaml
npm warn deprecated prebuild-install@7.1.3: No longer maintained. Please contact the author of the relevant native addon; alternatives are available.
✔ .github/skills/agentic-labeler/tests/eval.vally.yaml is valid
── .github/skills/code-review/tests/eval.capability.vally.yaml
✔ .github/skills/code-review/tests/eval.capability.vally.yaml is valid
── .github/skills/code-review/tests/eval.vally.yaml
✔ .github/skills/code-review/tests/eval.vally.yaml is valid
── .github/skills/code-review/tests/hermeticity.vally.yaml
✔ .github/skills/code-review/tests/hermeticity.vally.yaml is valid
── .github/skills/evaluate-pr-tests/tests/eval.vally.yaml
✔ .github/skills/evaluate-pr-tests/tests/eval.vally.yaml is valid
── .github/skills/try-fix/tests/eval.vally.yaml
✔ .github/skills/try-fix/tests/eval.vally.yaml is valid
── .github/skills/verify-tests-fail-without-fix/tests/eval.vally.yaml
✔ .github/skills/verify-tests-fail-without-fix/tests/eval.vally.yaml is valid

❌ LLM Evaluation Failed

🔍 Full results and investigation steps

KarthikRajaKalaimani and others added 9 commits July 8, 2026 11:27
…net#34527)

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details:

Horizontalspacing / Verticalspacing is not not applied to the first
column in GridItemLayout using CollectionView on Android platform.
        
### Root Cause:

The grid spacing was not being distributed symmetrically across the
active layout implementations, so edge items did not fully participate
when spacing changed at runtime.

### Description of Change:

- On Android, the fix in MauiRecyclerView.cs changes how RecyclerView
padding is handled for GridItemsLayout. Android was already using
SpacingItemDecoration, which applies half-spacing on all four sides of
each item. Previously, negative RecyclerView padding canceled that
spacing at the control edges. The branch keeps that negative-padding
behavior for non-grid layouts, but disables it for GridItemsLayout,
allowing the grid’s half-spacing to remain visible at the outer
perimeter. This makes the first row and first column visually respond
when spacing changes, but it also changes the grid behavior from spacing
only between items to spacing around the outside edges as well.

**Tested the behavior in the following platforms:**

- [x] Android
- [x] Windows
- [ ] iOS
- [ ] Mac

### Reference:

N/A

### Issues Fixed:

Fixes  dotnet#34257      

### Screenshots
| Before  | After  |
|---------|--------|
| <Video
src="https://github.com/user-attachments/assets/578dda69-1d60-474c-a6d8-23b3f9d29a50"
Width="300" Height="600"> | <Video
src="https://github.com/user-attachments/assets/7f3826e6-5922-4b6f-a6b9-de581b7db6c3"
Width="300" Height="600"> |
…net#34527)

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details:

Horizontalspacing / Verticalspacing is not not applied to the first
column in GridItemLayout using CollectionView on Android platform.
        
### Root Cause:

The grid spacing was not being distributed symmetrically across the
active layout implementations, so edge items did not fully participate
when spacing changed at runtime.

### Description of Change:

- On Android, the fix in MauiRecyclerView.cs changes how RecyclerView
padding is handled for GridItemsLayout. Android was already using
SpacingItemDecoration, which applies half-spacing on all four sides of
each item. Previously, negative RecyclerView padding canceled that
spacing at the control edges. The branch keeps that negative-padding
behavior for non-grid layouts, but disables it for GridItemsLayout,
allowing the grid’s half-spacing to remain visible at the outer
perimeter. This makes the first row and first column visually respond
when spacing changes, but it also changes the grid behavior from spacing
only between items to spacing around the outside edges as well.

**Tested the behavior in the following platforms:**

- [x] Android
- [x] Windows
- [ ] iOS
- [ ] Mac

### Reference:

N/A

### Issues Fixed:

Fixes  dotnet#34257      

### Screenshots
| Before  | After  |
|---------|--------|
| <Video
src="https://github.com/user-attachments/assets/578dda69-1d60-474c-a6d8-23b3f9d29a50"
Width="300" Height="600"> | <Video
src="https://github.com/user-attachments/assets/7f3826e6-5922-4b6f-a6b9-de581b7db6c3"
Width="300" Height="600"> |
<!--
!!!!!!! MAIN IS THE ONLY ACTIVE BRANCH. MAKE SURE THIS PR IS TARGETING
MAIN. !!!!!!!
-->

<!-- Enter description of the fix in this section -->

This is a follow up from dotnet#35303, that implements the `BooleanBoxes`
class and use inside the `Control` project

[Use the same solution that the WPF team
uses](https://github.com/dotnet/wpf/blob/b325a186ebcead7fddfde43c118f6a807397de35/src/Microsoft.DotNet.Wpf/src/WindowsBase/MS/Internal/KnownBoxes.cs#L10),
cache the boxed `true` and `false` values, and use it instead of boxing
a new boolean on every operation.

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Relates with dotnet#35302

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Pedro Jesus <pedrojesus@Pedros-MacBook-Pro.local>
…sh, XAML) (dotnet#34629)

Fixes ~97 build warnings that appear on every PR pipeline run (visible
in the CI build logs for `Build Microsoft.Maui.sln` steps).

- **RS0016/RS0017 (81 warnings)**: `PublicAPI.Unshipped.txt` entries in
Essentials.AI were missing the `[MAUIAI0001]` prefix required by the
assembly-level `[Experimental("MAUIAI0001")]` attribute. Added prefix to
all entries in net-ios, net-maccatalyst, net-macos.
- **Duplicate MauiSplashScreen (6 warnings)**:
`Essentials.AI.Sample.csproj` had two `MauiSplashScreen` entries (same
SVG, different colors). Removed duplicate.
- **XA1006/XA4211 (4 warnings)**: `GraphicsTester.Android`
`AndroidManifest.xml` had `targetSdkVersion=31` but TFM targets API 36.
Updated to 36.
- **XAML property element (6 warnings)**: `TwoPaneViewPage.xaml` had
`BackgroundColor` attribute on property element `Pane1` (invalid,
ignored at runtime). Moved to child `Frame`.

- **XC0022/XC0023/XC0045/XC0618/MAUIG2045** (125 warnings) - Intentional
in `Controls.Xaml.UnitTests` test project (configured via
`WarningsNotAsErrors`)
- **MSB3021/3026/3027** - Transient file-locking during parallel CI
builds
- **XA0141** - Third-party NuGet (`Gee.External.Capstone`) 16KB page
alignment warning in benchmarks

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: kubaflo <kubaflo@users.noreply.github.com>
<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

- Updates the sample-content MAUI template to use
`CommunityToolkit.Mvvm` 8.4.2.
- Converts template page models from field-backed `[ObservableProperty]`
members to partial observable properties without enabling preview
language features.
- Switches the sample-content SQLitePCLRaw dependency from
`bundle_green` to `bundle_e_sqlite3` 3.0.3 and updates cgmanifest
version mapping so generated projects avoid default NuGet audit
warnings.

- `dotnet build .\src\Templates\src\Microsoft.Maui.Templates.csproj
-p:UpdateCgManifestBeforeBuild=false -p:GenerateCgManifest=false`
- Packed templates and generated a `dotnet new maui --sample-content
true` app from an isolated template hive.
- `dotnet build <generated app> -f net10.0-windows10.0.19041.0
-p:RestoreIgnoreFailedSources=true` completed with 0 warnings and 0
errors, with no generated `LangVersion` or `EnablePreviewFeatures`
entries.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
…net#34527)

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details:

Horizontalspacing / Verticalspacing is not not applied to the first
column in GridItemLayout using CollectionView on Android platform.
        
### Root Cause:

The grid spacing was not being distributed symmetrically across the
active layout implementations, so edge items did not fully participate
when spacing changed at runtime.

### Description of Change:

- On Android, the fix in MauiRecyclerView.cs changes how RecyclerView
padding is handled for GridItemsLayout. Android was already using
SpacingItemDecoration, which applies half-spacing on all four sides of
each item. Previously, negative RecyclerView padding canceled that
spacing at the control edges. The branch keeps that negative-padding
behavior for non-grid layouts, but disables it for GridItemsLayout,
allowing the grid’s half-spacing to remain visible at the outer
perimeter. This makes the first row and first column visually respond
when spacing changes, but it also changes the grid behavior from spacing
only between items to spacing around the outside edges as well.

**Tested the behavior in the following platforms:**

- [x] Android
- [x] Windows
- [ ] iOS
- [ ] Mac

### Reference:

N/A

### Issues Fixed:

Fixes  dotnet#34257      

### Screenshots
| Before  | After  |
|---------|--------|
| <Video
src="https://github.com/user-attachments/assets/578dda69-1d60-474c-a6d8-23b3f9d29a50"
Width="300" Height="600"> | <Video
src="https://github.com/user-attachments/assets/7f3826e6-5922-4b6f-a6b9-de581b7db6c3"
Width="300" Height="600"> |
)

Updated the Syncfusion Toolkit version from 1.0.8 to 1.0.9
@sheiksyedm sheiksyedm linked an issue Jul 9, 2026 that may be closed by this pull request
@sheiksyedm
sheiksyedm requested a review from kubaflo July 9, 2026 08:16
@kubaflo
kubaflo merged commit 0348d96 into dotnet:inflight/current Jul 9, 2026
4 of 36 checks passed
@github-actions github-actions Bot added this to the .NET 10 SR9 milestone Jul 9, 2026
kubaflo pushed a commit that referenced this pull request Jul 10, 2026
…tive window/status bar (#36334)

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
Due to the changes introduced in PR #35800, when using Shell on Windows
and macOS (Mac Catalyst), the current page's title (intended for the
in-app navigation/title bar) was also being displayed in the native
window title bar and status bar.

### Description of Changes

<!-- Enter description of the fix in this section -->
The SetValueFromRenderer(Shell.TitleProperty, title) call was moved
inside the if (TitleView != null) block, so Shell.Title is only updated
by the renderer when a TitleView is present. Without a TitleView,
Shell.Title is left untouched, preventing the page title from
propagating to the native window/status bar.

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #36225 

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

**Tested the behavior in the following platforms.**
- [ ] Android
- [x] Windows
- [ ] iOS
- [ ] Mac


| Before  | After  |
|---------|--------|
| **Mac**<br> <img
src="https://github.com/user-attachments/assets/fa030b4b-6199-429e-a74a-ed346e118e79"
width="600" height="300"> | **Mac**<br> <img
src="https://github.com/user-attachments/assets/491d4a74-6acf-458a-8d45-fe3dce25f22f"
width="600" height="300"> |

---------
kubaflo pushed a commit that referenced this pull request Jul 15, 2026
…tive window/status bar (#36334)

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
Due to the changes introduced in PR #35800, when using Shell on Windows
and macOS (Mac Catalyst), the current page's title (intended for the
in-app navigation/title bar) was also being displayed in the native
window title bar and status bar.

### Description of Changes

<!-- Enter description of the fix in this section -->
The SetValueFromRenderer(Shell.TitleProperty, title) call was moved
inside the if (TitleView != null) block, so Shell.Title is only updated
by the renderer when a TitleView is present. Without a TitleView,
Shell.Title is left untouched, preventing the page title from
propagating to the native window/status bar.

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #36225 

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

**Tested the behavior in the following platforms.**
- [ ] Android
- [x] Windows
- [ ] iOS
- [ ] Mac


| Before  | After  |
|---------|--------|
| **Mac**<br> <img
src="https://github.com/user-attachments/assets/fa030b4b-6199-429e-a74a-ed346e118e79"
width="600" height="300"> | **Mac**<br> <img
src="https://github.com/user-attachments/assets/491d4a74-6acf-458a-8d45-fe3dce25f22f"
width="600" height="300"> |

---------
kubaflo pushed a commit that referenced this pull request Jul 22, 2026
…tive window/status bar (#36334)

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
Due to the changes introduced in PR #35800, when using Shell on Windows
and macOS (Mac Catalyst), the current page's title (intended for the
in-app navigation/title bar) was also being displayed in the native
window title bar and status bar.

### Description of Changes

<!-- Enter description of the fix in this section -->
The SetValueFromRenderer(Shell.TitleProperty, title) call was moved
inside the if (TitleView != null) block, so Shell.Title is only updated
by the renderer when a TitleView is present. Without a TitleView,
Shell.Title is left untouched, preventing the page title from
propagating to the native window/status bar.

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #36225 

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

**Tested the behavior in the following platforms.**
- [ ] Android
- [x] Windows
- [ ] iOS
- [ ] Mac


| Before  | After  |
|---------|--------|
| **Mac**<br> <img
src="https://github.com/user-attachments/assets/fa030b4b-6199-429e-a74a-ed346e118e79"
width="600" height="300"> | **Mac**<br> <img
src="https://github.com/user-attachments/assets/491d4a74-6acf-458a-8d45-fe3dce25f22f"
width="600" height="300"> |

---------
kubaflo pushed a commit that referenced this pull request Jul 28, 2026
…tive window/status bar (#36334)

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
Due to the changes introduced in PR #35800, when using Shell on Windows
and macOS (Mac Catalyst), the current page's title (intended for the
in-app navigation/title bar) was also being displayed in the native
window title bar and status bar.

### Description of Changes

<!-- Enter description of the fix in this section -->
The SetValueFromRenderer(Shell.TitleProperty, title) call was moved
inside the if (TitleView != null) block, so Shell.Title is only updated
by the renderer when a TitleView is present. Without a TitleView,
Shell.Title is left untouched, preventing the page title from
propagating to the native window/status bar.

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #36225 

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

**Tested the behavior in the following platforms.**
- [ ] Android
- [x] Windows
- [ ] iOS
- [ ] Mac


| Before  | After  |
|---------|--------|
| **Mac**<br> <img
src="https://github.com/user-attachments/assets/fa030b4b-6199-429e-a74a-ed346e118e79"
width="600" height="300"> | **Mac**<br> <img
src="https://github.com/user-attachments/assets/491d4a74-6acf-458a-8d45-fe3dce25f22f"
width="600" height="300"> |

---------
kubaflo pushed a commit that referenced this pull request Jul 29, 2026
…tive window/status bar (#36334)

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Issue Details
Due to the changes introduced in PR #35800, when using Shell on Windows
and macOS (Mac Catalyst), the current page's title (intended for the
in-app navigation/title bar) was also being displayed in the native
window title bar and status bar.

### Description of Changes

<!-- Enter description of the fix in this section -->
The SetValueFromRenderer(Shell.TitleProperty, title) call was moved
inside the if (TitleView != null) block, so Shell.Title is only updated
by the renderer when a TitleView is present. Without a TitleView,
Shell.Title is left untouched, preventing the page title from
propagating to the native window/status bar.

### Issues Fixed

<!-- Please make sure that there is a bug logged for the issue being
fixed. The bug should describe the problem and how to reproduce it. -->

Fixes #36225 

<!--
Are you targeting main? All PRs should target the main branch unless
otherwise noted.
-->

**Tested the behavior in the following platforms.**
- [ ] Android
- [x] Windows
- [ ] iOS
- [ ] Mac


| Before  | After  |
|---------|--------|
| **Mac**<br> <img
src="https://github.com/user-attachments/assets/fa030b4b-6199-429e-a74a-ed346e118e79"
width="600" height="300"> | **Mac**<br> <img
src="https://github.com/user-attachments/assets/491d4a74-6acf-458a-8d45-fe3dce25f22f"
width="600" height="300"> |

---------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-controls-shell Shell Navigation, Routes, Tabs, Flyout community ✨ Community Contribution partner/syncfusion Issues / PR's with Syncfusion collaboration

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The same title as the title bar appears in the status bar.

9 participants