On 11/20/2019 3:45 AM, Giovanni via use-livecode wrote:
Hi everybody,
as already said the main problem is that there is no way to intercept the 
maximization action and to understand if the window is maximized or not.
screenrects or windowBoundingRect are not useful in this case mainly when the 
maximized window has a maxWidth or maxHeight value lower than the maximum 
width/height of the screenrect.

Moreover due to the bug #21311 (https://quality.livecode.com/show_bug.cgi?id=21311 
<https://quality.livecode.com/show_bug.cgi?id=21311>) it’s not possible to 
prevent the windows maximization for the resizable stacks.

So, any other hint about this topic?

As this is really an issue mainly on recent versions of macOS where maximize goes to full screen and then really on on the primary monitor as it covers things like the menu bar, I think a work-around in resizeStack is the way to go. in the resizeStack handler see get the rect of the stack - this will be the stacks new rect. If the top in the space normally reserved for the menu bar. It doesn't have to equal the rect of the primary monitor. You just eed to check the top and see if it is less than the height of the macOS menubar (I think 44px?  Can't remember off the top of my head). If top is less than 44px then the stack has been maximized and then you can reset the rect to the effective working rect of the primary screen

so something like:

on resizeStack
  lock screen
  if the screen of this stack = 1 then -- this stack is on the primary monitor    if (the effective top of this stack < (item 2 of the screenRect + 44)) then -- this stack has been maximized as its top is "above" the menubar     set the effective rect of this stack to the effective working screenRect
   end if
  end if
  -- do the rest of resizeStack based on the (now) revised stack rect, so don't use the height or width passed as params, but get the height, width, or rect after this line so you have the revised rect.
  ...
  unlock screen
end resizeStack

I have not tested this - I just wrote it off the top of my head, so check to see if it works.

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to