Visitar URL original
fix(inputpane): Scroll root content above the keyboard (backport #24947) (backport #25032) by mergify[bot] · Pull Request #25785 · unoplatform/uno · GitHub
Skip to content

fix(inputpane): Scroll root content above the keyboard (backport #24947) (backport #25032) - #25785

Merged
agneszitte merged 6 commits into
release/stable/6.7from
mergify/bp/release/stable/6.7/pr-25032
Oct 28, 2026
Merged

agneszitte merged 6 commits into
release/stable/6.7from
mergify/bp/release/stable/6.7/pr-25032

Conversation

@mergify

@mergify mergify Bot commented Oct 28, 2026

Copy link
Copy Markdown
Contributor

GitHub Issue: related to unoplatform/kahua-private#512

PR Type:

🐞 Bugfix

What changed? 🚀

On Skia targets, a focused field could stay clipped or hidden behind the on-screen keyboard. This happened whenever the field's nearest ScrollViewer could not move it high enough, for example a details side panel whose ScrollViewer starts just above the keyboard's top edge (and worse in iPad Safari with the tab bar showing). InputPane only padded and scrolled that one ScrollContentPresenter, and nothing moved the rest of the content. In WinUI, the RootScrollViewer shrinks to the area above the input pane and scrolls the whole content instead. This PR replaces the padding with the equivalent of that RootScrollViewer. While the input pane is shown, the window's root element (RootVisual or XamlIslandRoot, through UnoRootElementLogic) acts as the outermost bring-into-view scroller, with a viewport that ends at the top of the pane. It offsets the public root visual when the focused element, padded by WinUI's 20px, still sits below that viewport, and resets the offset when the pane hides. InputPane now requests a non-animated bring-into-view, as WinUI does. Two related fixes: ScrollContentPresenter's bring-into-view used the DesiredSize-based viewport, which dropped requests coming from content stretched taller than it asks for instead of forwarding them to outer scrollers; and AutoSuggestBox now places its suggestion list in window coordinates, since the content can be offset. Given_InputPane now covers a side panel that starts near the keyboard, a field outside any ScrollViewer, focus moving while the keyboard is up, hit-testing after the content moves, restoring the content when the keyboard hides, and an app that handles Showing itself. Given_ScrollViewer covers the nested stretched-content case. Both fail without the fix. The change was also checked manually on an iPad in Safari with the SoftKeyboardFocusTests sample, whose steps are updated for the new behavior.

PR Checklist ✅


This is an automatic backport of pull request #24947 done by [Mergify](https://mergify.com).
This is an automatic backport of pull request #25032 done by [Mergify](https://mergify.com).

ajpinedam and others added 6 commits October 28, 2026 03:32
(cherry picked from commit d494f86)
(cherry picked from commit 534f2a5)
(cherry picked from commit 1b9aeab)
(cherry picked from commit 48378dc)
(cherry picked from commit 4cb4ca3)
(cherry picked from commit 4b6587c)
(cherry picked from commit d272124)
(cherry picked from commit ac7e91a)
(cherry picked from commit 0b61c7f)
(cherry picked from commit 8c6a8df)
Same skip as master (f158a6c): it fails on the iOS CI simulator
even when retried alone, unrelated to this backport.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Tmiyo6fvmNeNuLXL2kbyJN
(cherry picked from commit ad362be)
@github-actions github-actions Bot added area/skia ✏️ Categorizes an issue or PR as relevant to Skia area/automation Categorizes an issue or PR as relevant to project automation labels Oct 28, 2026
@agneszitte
agneszitte merged commit e93856f into release/stable/6.7 Oct 28, 2026
11 of 17 checks passed
@agneszitte
agneszitte deleted the mergify/bp/release/stable/6.7/pr-25032 branch October 28, 2026 03:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/automation Categorizes an issue or PR as relevant to project automation area/skia ✏️ Categorizes an issue or PR as relevant to Skia

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants