screenRect and screenLoc weirdness

Paul Dupuis paul at
Tue Jan 15 13:12:44 CET 2019

On 1/14/2019 7:58 PM, Knapp Martin via use-livecode wrote:
>> set the loc of stack "Ask Dialog" to screenLoc()
>> ask "What color is you favorite?”
> Does that work for you Paul - it doesn’t for me. I’m having to do this:
> send CenterAnswerOnScreen to me in 1 tick
> answer “Blah blah blah”
> on CenterAnswerOnScreen
>     set the loc of stack "answer dialog" to the screenLoc
> end CenterAnswerOnScreen
> I have a couple of customers with small-screened laptops who use large secondary monitors aligned at the bottom. Thus the top of the secondary monitor is quite a bit above the main laptop monitor. Ask and Answer dialogs are so far off you can only see about the bottom 1/8 of an inch of the window and are thus unusable.
> Marty

Yes, it has been working for us. It works in LC9.0.2 with a new stack 
and a button with those 2 lines in a mouseUp handler.

I think this may only work under Desktop OSes as the Inclusions (in 
Standalone settings) show the standard Ask and Answer Dialogs available 
only for Linux, OSX, and WIndows.

Also, per prior discussion in this thread, code like:

set the loc of stack "Ask Dialog" to effectiveScreenLocOfScreen(the 
sceeen of this stack)
ask "What color?"


function effectiveScreenLocOfScreen pScreen
   -- pScreen is a monitor number (a line of the screenRects or the value of the screen of stack property
   local tRect,tH,tV
   put line pScreen of the effective screenRects into tRect -- or use 'effective working screenRects' for accommodating pop up keyboards and such
   put ((item 3 of tRect - item 1 of tRect)/2) into tH
   put ((item 4 of tRect - item 2 of tRect)/2) into tV
   return (tH,tV)
end effectiveScreenLocOfScreen

should result in centering an Ask Dialog on the monitor that the stack that invokes it is on.

More information about the use-livecode mailing list