RFR: 8352999: [macOS] Conditional behavior by directly querying the Objective-C call stack
Martin Fox
mfox at openjdk.org
Mon Mar 31 18:34:32 UTC 2025
Before a window is maximized glass records its existing size and location. This rectangle is stored in native screen coordinates. Compared to Java screen coordinates native coordinates are flipped along the Y axis.
When the window is un-maximized that native rectangle is passed to a routine that normally takes Java screen coordinates. To determine whether the rectangle is flipped or not the code inspects the Objective-C stack to figure out which routine called it.
At the risk of re-writing working code this PR takes a more conventional approach to the problem.
I’ve also re-enabled the related system test. I had to increase the animation delay to get it to pass on the Mac. 400 milliseconds is enough but 500 gives us some headroom.
-------------
Commit messages:
- Removed code that was building an NSRect verbatim from an existing NSRect
- No longer querying Objective-C stack to determine window frame coordinate system
Changes: https://git.openjdk.org/jfx/pull/1749/files
Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=1749&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8352999
Stats: 23 lines in 2 files changed: 1 ins; 19 del; 3 mod
Patch: https://git.openjdk.org/jfx/pull/1749.diff
Fetch: git fetch https://git.openjdk.org/jfx.git pull/1749/head:pull/1749
PR: https://git.openjdk.org/jfx/pull/1749
More information about the openjfx-dev
mailing list