Skip to content

adaptive tab browser with material3 nav3#224

Open
maceip wants to merge 18 commits intoIgalia:mainfrom
maceip:maceip/adaptive-not-so-mini-browser
Open

adaptive tab browser with material3 nav3#224
maceip wants to merge 18 commits intoIgalia:mainfrom
maceip:maceip/adaptive-not-so-mini-browser

Conversation

@maceip
Copy link
Copy Markdown

@maceip maceip commented Jan 25, 2026

  • list-detail layout adapts to screen size (tablet shows tabs + webview side-by-side, phone shows one at a time)
  • drag-to-reorder tabs with animated elevation/scale, bottom sheet overlays for tab actions
    slide transitions between scenes, predictive back gesture support
  • media/capture state signals, shimmer loading overlay, multi-back-stack nav with state persistence

this might need to be moved out of your repo as its not so mini anymore :)

felipeerias and others added 18 commits January 16, 2026 20:31
In clang-tidy rules, change WarningsAsErrors to warnings only.
Preserve Cerbero build folder during gradle clean.
Replace the legacy wpe-android view-backend with the new WPE Platform API,
providing a cleaner integration with WebKit's rendering pipeline.

New implementations:
- WPEDisplayAndroid: Android-specific WPEDisplay
- WPEToplevelAndroid: Window/toplevel management
- WPEViewAndroid: View with buffer handling via AHardwareBuffer
- WPEInputMethodContextAndroid: Input method context

Key changes:
- RendererSurfaceControl uses WPEBuffer directly instead of WPEAndroidBuffer
- Connect fundamental WebKit signals for navigation, loading, and UI
Add full keyboard support for web content using WPE's input method context:

- AndroidKeyMap.h: Maps Android keycodes to XKB keysyms
- WPEInputConnection: Android InputConnection for soft keyboard
- Support for text composition, deletion, and hardware key events

The input method context integrates with WPE's focus tracking to
show/hide the soft keyboard when input fields gain or lose focus.
add listdetailscenestrategy layout
add composite strategy, nav transitions
request layout when container resizes for viewport update
mute background tabs, track media/capture state
Replace complex multi-backstack pattern with single NavBackStack per
Navigation 3 conventions. Previous implementation had several issues:
- Created separate backStacks per top-level route causing state issues
- Called rememberSaveableStateHolderNavEntryDecorator in loop
- Returned new SnapshotStateList on each call breaking equality checks
- Dynamic topLevelRoutes caused backStacks map to become stale

New implementation uses rememberNavBackStack for automatic state saving,
properly integrates with NavDisplay's entryProvider pattern, and handles
tab switching by replacing TabDetail entries instead of managing multiple
navigation stacks.
fix browser navigation state to use single NavBackStack
Restore the original copyright headers for pre-existing files that
were incorrectly modified. These files were originally authored by
Igalia contributors.
minibrowser: restore original Igalia copyright headers
@aperezdc
Copy link
Copy Markdown
Member

aperezdc commented Feb 5, 2026

@maceip Right now we are busy trying to get the support for WPEPlatform merged in main, so this will have to wait at least until that is completed and then this PR will need a rebase—we'll let you know when it is a good moment for that. Thanks for your patience 🙏🏼

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.

3 participants