Combo list appears behind window on High Sierra

This only happens when my program is run full screen on High Sierra.
I open a small window in front of the main window.
Click a combo box. The list appears behind the window.
If the list is short you can’t see anything at all.
Works fine when main window is not full screen.

Is this the latest version of Xojo? 64-bit? Please file a feedback report.

How exactly are you opening the small window?

…when another one is full screen?
All my tests showed that if one screen is full, they are all made full… looks horrible.
So I disabled actual full-screen.
Im interested to know how you mix them.

The main window (Document) is maximized. You click a button to open a movable modal window in front with the combo box on it.
Compiled 2016 R4.1 but I’m fairly sure it still happens in the latest version.
Doesn’t happen in old Sierra.

Is this a 32-Bit application or 64-Bit, if it’s 64-Bit, you’ll need to file a bug report with Apple. If it’s a 32-Bit application, you need to build 64-Bit.

Does the same happen if you open this as a sheet window?

[quote=359883:@Craig Grech]The main window (Document) is maximized. You click a button to open a movable modal window in front with the combo box on it.
Compiled 2016 R4.1 but I’m fairly sure it still happens in the latest version.
Doesn’t happen in old Sierra.[/quote]
You’re kind of breaking the UI to do this. You’ve two options to fix this:

  1. Does your app really need full-screen? If not, disable it.
  2. Change the small window to a sheet window. This will cause the combobox to behave properly. There’s no such thing as a sheet window in Windows, so if your app is cross-platform, it will behave as an ordinary movable modal on Windows, just as before.

Here’s the official Apple UI doc on full-screen windows: https://developer.apple.com/macos/human-interface-guidelines/app-architecture/fullscreen-mode/

Anyone know what this implies?

[quote]NSWindowCollectionBehaviorFullScreenAuxiliary
macOS 10.7+

NSWindowCollectionBehaviorFullScreenAuxiliary = 1 << 8[/quote]

Is it a way of saying ‘keep my little helper window small even though the document window is full screen’?

[quote=360038:@Jeff Tullin]Anyone know what this implies?

Is it a way of saying ‘keep my little helper window small even though the document window is full screen’?[/quote]
Pretty much. The collectionBehavior of the main window should be NSWindowCollectionBehaviorFullScreenPrimary (full-screen in Xojo). The collectionBehavior of the little window should be NSWindowCollectionBehaviorFullScreenAuxiliary, which allows it to be on the screen at the same time as the full-screen window and behave properly.

Any clever person around who knows how to apply that to a Xojo window? :slight_smile:

In Window.Open

declare sub setCollectionBehavior lib "Cocoa" selector "setCollectionBehavior:" (iWinID as Integer, uiBehavior as UInt32) // NSWindowCollectionBehaviorCanJoinAllSpaces = 1 << 0 = 1 // NSWindowCollectionBehaviorFullScreenAuxiliary = 1 << 8 = 256 // setCollectionBehavior:NSWindowCollectionBehaviorCanJoinAllSpaces|NSWindowCollectionBehaviorFullScreenAuxiliary setCollectionBehavior(self.Handle, 257)

The mail window opens in a set size but the user has the option to go full screen.
The contents of the main window has a listbox which can show information much clearer at full screen so I don’t want to disable this option.
Think of it like an large Excel spreadsheet. You can probably work on it in a small window but as soon as you open you start looking for the maximize button to make life easier.

btw: I tried a 32bit and 64bit compile. Same result.

Thanks Gavin Smith!
Changing it to a Sheet Window fixed the problem on Mac High Sierra.