Skip to content

[Linux] Track GTK3 embedder refactors to prepare for GTK4 #194698

Open

Description

@richyo-codes

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

Related work

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

  1. suryaKommana2662 commented on Oct 19, 2026

    @suryaKommana2662
    Contributor

    @richyo-codes Thanks for the report. routing to the team-linux for further investigation.

  2. added
    team-linuxOwned by the Linux platform team
    platform-linuxBuilding on or for Linux specifically
    c: proposalA detailed proposal for a change to Flutter
    and removed
    in triagePresently being triaged by the triage team
    on Oct 19, 2026
  3. added
    P3Issues that are less important to the Flutter project
    triaged-linuxTriaged by the Linux platform team
    on Nov 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P3Issues that are less important to the Flutter projecta: desktopRunning on desktopc: proposalA detailed proposal for a change to Flutterplatform-linuxBuilding on or for Linux specificallyteam-linuxOwned by the Linux platform teamtriaged-linuxTriaged by the Linux platform team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions