6.5.2 Doesn't Remember Script Editor Location
Mark Schonewille
m.schonewille at economy-x-talk.com
Fri Jan 31 16:30:27 EST 2014
Hi Ray,
When the script editor opens, the message seem to be locked. I tried to
trigger the preOpenStack message when the script editor opens in
MetaCard and that works perfectly. Apparently, the creator of the
LiveCode script editor doesn't want us to intercept messages while
editing a script in LiveCode.
However, you can use the editScript message. "Unfortunately", this
message is sent to the control whose script is being edited and not to
the script editor. (I write "unfortunately" in quotes, because it is
still expected behaviour and necessary for the script editor to work).
In the editScript message, you can loop through all stacks that contain
"revScriptEditor" in their short name and check that they are on screen.
Here's an example:
constant lPreferredRect ="-1157,-111,-180,644"
local lScriptEditorIsOpen
on checkScriptEditorLocs
if lScriptEditorIsOpen is not true then
if there is a stack "revNewScriptEditor 1" then
set the rect of stack "revNewScriptEditor 1" to lPreferredRect
put true into lScriptEditorIsOpen
end if
end if
repeat for each line myStack in the windows
if myStack contains "revNewScriptEditor" then
put false into myVis
repeat for each line myRect in the screenRects
if there is a stack myStack then
if the topleft of stack myStack is within myRect or \
the topRight of stack myStack is within myRect or \
the bottomLeft of stack myStack is within myRect \
or the bottomRight of stack myStack is within \
myRect then
put true into myVis
exit repeat
end if
end if
end repeat
if myVis is false and there is a stack myStack then
set the loc of window myStack to the screenLoc
end if
end if
end repeat
end checkScriptEditorLocs
on editScript
put ("revNewScriptEditor" is in the openStacks) into \
lScriptEditorIsOpen
send "checkScriptEditorLocs" to me in 0 milliseconds
pass editScript
end editScript
Make sure that this script is in a front script.
The funny thing is that while testing the script editor, I seem to have
broken it. Its default behaviour now is to open on my primary screen.
Therefore, I have added a little feature, which opens it on my secondary
screen, if no script editor is open yet. For me, this is useful, because
I edit all scripts in one window. Change the constant at the top of the
script to set the location where you want your script editor to open.
Let me know if you encounter any problems when trying this script.
--
Best regards,
Mark Schonewille
Economy-x-Talk Consulting and Software Engineering
Homepage: http://economy-x-talk.com
Twitter: http://twitter.com/xtalkprogrammer
KvK: 50277553
Use Color Converter to convert CMYK, RGB, RAL, XYZ, H.Lab and other
colour spaces. http://www.color-converter.com
Buy my new book "Programming LiveCode for the Real Beginner"
http://qery.us/3fi
LiveCode on Facebook:
https://www.facebook.com/groups/runrev/
On 1/30/2014 18:25, Ray wrote:
> Let me know how it goes Mark. I'd like to get a little more feedback
> before writing a bug report.
>
> On 1/30/2014 12:18 PM, Mark Schonewille wrote:
>> Ray, I'll try it myself, later tonight.
>>
>>
>> --
>> Best regards,
>>
>> Mark Schonewille
>>
>> Economy-x-Talk Consulting and Software Engineering
>> Homepage: http://economy-x-talk.com
>> Twitter: http://twitter.com/xtalkprogrammer
>> KvK: 50277553
>>
>> Use Color Converter to convert CMYK, RGB, RAL, XYZ, H.Lab and other
>> colour spaces. http://www.color-converter.com
>>
>> Buy my new book "Programming LiveCode for the Real Beginner"
>> http://qery.us/3fi
>>
>> LiveCode on Facebook:
>> https://www.facebook.com/groups/runrev/
>>
>> On 1/30/2014 16:26, Ray wrote:
>>> I'm not having any luck with inserting the following script into front:
>>>
>>> on preOpenStack
>>> put the ticks
>>> end preOpenStack
>>>
>>> With this inserted I get a message box opened with the ticks when I open
>>> another stack from the desktop, but no ticks when I shift-control-S to
>>> open the stack script (the script editor window). Evidently a script
>>> inserted into the front doesn't get triggered when opening the script
>>> editor. Neither does the 'start using stack' method.
>>>
>>> Am I doing this right?
>>>
>>> Ray
>>>
More information about the use-livecode
mailing list