Repository navigation
Description
Summary
Track incremental refactoring of Flutter's existing GTK3 Linux embedder to improve code structure, maintainability, and compatibility with a future GTK4 implementation.
The goal is to identify changes that can be developed, reviewed, and landed independently while preserving existing GTK3 functionality.
This work supports #94804 (GTK4 support) but does not itself introduce a GTK4 embedder.
Motivation
The Linux embedder currently contains GTK3-specific assumptions throughout its widget, windowing, input, and rendering code.
There is no reason why GTK3 and GTK4 can't co-exist in the tree.
Guidelines
- Preserve existing GTK3 behaviour and supported configurations.
- Avoid public API or ABI changes unless separately justified.
- Prefer existing GTK/GDK terminology and APIs.
- Introduce compatibility helpers only where they provide a clear benefit.
- Avoid unnecessary abstractions or conditional GTK3/GTK4 code throughout the embedder.
- Include appropriate unit tests and regression coverage.
- Keep individual PRs small enough to review independently.
Current PR's
- refactor(linux): introduce GTK3 surface helpers #193943
- fix(linux): handle ATK C linkage with newer GLib headers #193942
- refactor(linux): Extract GTK3 display monitor backend in preparation for GTK4 #195324
- refactor(linux): extract GTK3 pointer, touch and gesture handling #194913
- docs(linux): clarify toolkit-specific windowing contracts #194921
Related work
- Use gtk4 for linux desktop #94804 — GTK4 support for Linux desktop
Completion criteria
This is an ongoing tracking issue. It can be closed when the identified GTK3-side preparatory refactors have been completed or moved into independently tracked work.
GTK4 build support and feature parity are outside the scope of this issue.
Activity
suryaKommana2662 commentedon Oct 19, 2026
@richyo-codes Thanks for the report. routing to the
team-linuxfor further investigation.