Skip to content

feature: migrate to latest, experimental API version#1

Merged
mattkae merged 3 commits into
masterfrom
new-migration
Jul 9, 2026
Merged

feature: migrate to latest, experimental API version#1
mattkae merged 3 commits into
masterfrom
new-migration

Conversation

@mattkae

@mattkae mattkae commented Jul 2, 2026

Copy link
Copy Markdown
Owner

pull Bot pushed a commit to Dramaga11/flutter that referenced this pull request Jul 8, 2026
…support out of tree LinuxWindowingOwners (flutter#188917)

## Problem
While authoring https://github.com/mattkae/layer_shell.dart, I realized
that the Linux Windowing platform had a few major problems when it came
to extending it for out-of-tree windowing owners:

1. 3rd party windows could _not_ register in the `_windows` or `_views`
maps, which meant that they could never be parents. This is invalid, as
other windows (e.g. layer shell windows) may indeed want to be valid
parents and open popups. For example, a top panel may want to open a
sound control dropdown.
2. I wanted to extend `RegularWindowLinux`, but that was unfortunately
not possible because the regular windows realize themselves by the time
the constructor returns. Gtk layer shell windows require that the window
become layer shell _before_ it is realized. We could have added an odd
flag to the regular window, but that felt like duct-tape over a larger
issue whereby an external author could NOT do anything sufficiently
complex with the current API.

## What's new?
- Created a `GtkWindowRegistrar` that can be used to register and
unregister 3rd party windows

Associated PR: mattkae/layer_shell.dart#1

## Pre-launch Checklist

- [x] I read the [Contributor Guide] and followed the process outlined
there for submitting PRs.
- [x] I read the [AI contribution guidelines] and understand my
responsibilities, or I am not using AI tools.
- [x] I read the [Tree Hygiene] wiki page, which explains my
responsibilities.
- [x] I read and followed the [Flutter Style Guide], including [Features
we expect every widget to implement].
- [x] I signed the [CLA].
- [x] I listed at least one issue that this PR fixes in the description
above.
- [x] I updated/added relevant documentation (doc comments with `///`).
- [x] I added new tests to check the change I am making, or this PR is
[test-exempt].
- [x] I followed the [breaking change policy] and added [Data Driven
Fixes] where supported.
- [x] All existing and new tests are passing.
@mattkae
mattkae merged commit 901fe6c into master Jul 9, 2026
@mattkae
mattkae deleted the new-migration branch July 9, 2026 12:29
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.

1 participant