Sorry, a few artifacts from a previous version snuck in there. Here is the 
latest. 

on setWindowInScreen pStackName
   -- the stack rect
   put the rect of stack pStackName into tStackRect
   
   -- the rect of the screen the stack belongs to
   put the screen of stack pStackName into tScreenNum
   put line tScreenNum of the working screenrects into tScreenRect
      
   -- Check for window off screen
   IF item 1 of tStackRect < item 1 of tScreenRect THEN \
         set the left of stack pStackName to item 1 of tScreenRect
   IF item 2 of tStackRect < item 2 of tScreenRect THEN \
         set the top of stack pStackName to (item 2 of tScreenRect)
   IF item 3 of tStackRect > item 3 of tScreenRect THEN \
         set the right of stack pStackName to item 3 of tScreenRect
   IF item 4 of tStackRect > item 4 of tScreenRect THEN \
         set the bottom of stack pStackName to (item 4 of tScreenRect)
   
   -- the new screenRect
   return the rect of stack pStackName
end setWindowInScreen

Bob S


> On Mar 30, 2022, at 09:04 , Bob Sneidar via use-livecode 
> <use-livecode@lists.runrev.com> wrote:
> 
> Hi all. 
> 
> For those dealing with the stack appearing offscreen, here is a handy handler 
> for moving the stack so that it is fully visible to the screen it belongs to. 
> Note that the screen it belongs to is determined by the loc of the stack. 
> Maybe this should be added to the Master Library? 
> 
> Bob S
> 
> 
> on setWindowInScreen pStackName
>   -- the stack rect
>   put the rect of stack pStackName into tStackRect
> 
>   -- the rect of the screen the stack belongs to
>   put the screen of stack pStackName into tScreenNum
>   put line tScreenNum of the working screenrects into tScreenRect
> 
>   -- is stack within the screenRect
> 
>   -- Check for window off screen
>   IF item 1 of tStackRect < item 1 of tScreenRect THEN \
>         set the left of stack pStackName to item 1 of tScreenRect
>   IF item 2 of tStackRect < item 2 of tScreenRect THEN \
>         set the top of stack pStackName to (item 2 of tScreenRect + 42)
>   IF item 3 of tStackRect > item 3 of tScreenRect THEN \
>         set the right of stack pStackName to item 3 of tScreenRect
>   IF item 4 of tStackRect > item 4 of tScreenRect THEN \
>         set the bottom of stack pStackName to (item 4 of tScreenRect - 40)
> 
>   -- the new screenRect
>   return the rect of stack pStackName
> end setWindowInScreen
> 
> 
> _______________________________________________
> 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


_______________________________________________
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