Window layering

Mark Waddingham mark at livecode.com
Wed Jul 19 13:51:00 EDT 2017


On 2017-07-19 18:59, Mark Waddingham via use-livecode wrote:
>> - set the layer ouf a stack below all other windows (opposite
>>   of systemWindow)
> 
> It might be useful - although probably not implementable (judging by
> how hard it is to get the backdrop to work reliably on all platforms).

This case is a *lot* harder.

The Mac Window Server does define various levels for windows 
(https://developer.apple.com/documentation/coregraphics/cgwindowlevelkey?language=objc).

However, the two below 'Normal' are not referenced in Cocoa - they are 
likely reserved for the OS. Indeed, the 'Desktop' level is the actual 
Desktop window (the thing which shows all the icons and such). I suspect 
that you have no control over ordering within those levels at all - so 
the chance of it doing what you want there is minimal.

On Linux it is a similar story, there are a number of levels - the one 
which (a long time ago) used to be used for backdrops, is now reserved 
to the 'Desktops' (e.g. Gnome or KDE). If you have one of these desktops 
running, if you set a window to that level (via the appropriate hint) it 
goes underneath so you don't see it.

On Win32 it probably could be 'hacked' in a similar way we do the 
backdrop there now - however, you then have the problem that you have to 
make it work in the sea of other application windows completely 
unrelated to your own windows, which is a potential problem.

Warmest Regards,

Mark.

-- 
Mark Waddingham ~ mark at livecode.com ~ http://www.livecode.com/
LiveCode: Everyone can create apps




More information about the use-livecode mailing list