Skip to content

macos: fix configure, move-resize, and compute-size

Christian Hergert requested to merge wip/chergert/macos-fix-toplevel-resize into main

This significantly cleans up how we handle various move-resize, compute- size, and configure (notification of changes) in the macOS GDK backend.

Originally when prototyping this backend, there were some bits that came over from the quartz backend and some bits which did not. It got confusing and so this makes an attempt to knock down all that technical debt.

It is much simpler now in that the GdkMacosSurface makes requests of the GdkMacosWindow, and the GdkMacosWindow notifies the GdkMacosSurface of changes that happen.

User resizes are delayed until the next compute-size so that we are much closer to the layout phase, reducing chances for in-between frames.

This also improves the situation of leaving maximized state so that a grab and drag feels like you'd expect on other platforms.

I removed the opacity hack we had in before, because that is all coming out anyway and it's a bit obnoxious to maintain through the async flows here.

It also fixes tests/animated-resizing so that we can use it when doing comparisons for !4477 (merged) once it has been rebased.

Merge request reports