Tk Source Code

View Ticket
Login
Ticket UUID: 2249e64bdcc759e3db34687bef98668b04a56364
Title: some unixWm tests expect things which are impossible on Aqua
Type: Bug Version: 8.6.9
Submitter: marc_culler Created on: 2019-02-13 15:46:25
Subsystem: 86. Test Tools Assigned To: marc_culler
Priority: 5 Medium Severity: Minor
Status: Closed Last Modified: 2019-02-17 14:29:07
Resolution: Fixed Closed By: fvogel
    Closed on: 2019-02-17 14:29:07
Description:
On macOS windows are not allowed to overlap the menubar at the top of the screen.
If you ask the Apple window manager to position a window with y-coordinate 0 it
will instead position it with y-coordinate equal to 23, the height of the
menubar.

There are a number of unixWm tests which use the wm geometry command to position
a window with y-coordinate < 23 and then check, using the wm geometry command,
that it actually was placed at the requested position.  These cannot pass on
macOS.

In my first round of making the unixWm tests pass on the mac I added code which
would essentially lie to Tk in this situation.  When a position was requested
that would cause a window to overlap the menubar, the position recorded in the
wmInfo struct was the requested position, not the actual position where the Apple
window manager drew the window.

This was not a good idea.  It would be better to record the actual window
position and adjust the tests for Aqua so they are not expecting impossible
results.
User Comments: fvogel added on 2019-02-17 14:29:07:

While I definitely agree on this new approach, I'm wondering about the hardcoded value 23.

Is this robust? Couldn't the height of the menubar change depending on the system font? Will we have to maintain this value across the upcoming releases of Aqua?


marc_culler (claiming to be Marc Culler) added on 2019-02-13 20:59:27:
The change proposed above removes two lines of code from tkMacOSXWindowEvent.c
and modifies some tests.  The implementation was committed to the bugfix branch
bug-2249e64bdc.  I have verified that there were no changes to regression test
results on macOS, Windows and Ubuntu 18.04.  I will close this ticket and merge
the changes.