Thanks very much Monte, that's exactly what I wanted to know. For simple editing it sounds like I could just turn off messages, open the stack from Finder, and turn messages back on, bypassing preOpenStack entirely. If that doesn't work you've given me a couple of other things to try.

I'd still like to know the reason for the bizarre error warning, but one thing at a time. It was odd but wasn't a blocker.

--
Jacqueline Landman Gay | jac...@hyperactivesw.com
HyperActive Software | http://www.hyperactivesw.com
On October 9, 2018 5:33:59 PM Monte Goulding via use-livecode <use-livecode@lists.runrev.com> wrote:

Hi Jacque

I’m sorry I haven’t been following this whole thread so forgive me if my responses have already been covered.

On 10 Oct 2018, at 6:22 am, Richard Gaskin via use-livecode <use-livecode@lists.runrev.com> wrote:

If the cantEdit is false but the mode is reported as 2, that sounds
like an engine bug.

Don't you mean cantModify here?

toplevel stacks that are ide stacks are forced to toplevel locked (mode 2). We determine this through a stack custom property `ideOverride`. If that is true when loading the stack from disk then it is set as an IDE stack. Additionally there is a runtime property of stacks that you can set `_ideoverride` that can turn this behavior on and off.

Jacque’s issue is we have an IDE script that dynamically sets these in revfrontsciptlibrary preOpenStack:

  if revIDEObjectIsOnIDEStack(tTarget) then
# IM-2016-03-01: [[ Bug 16244 ]] IDE stacks should always hide invisible objects
     set the showInvisibles of stack tStack to false
     set the _ideoverride of stack tStack to true
  end if

It all hinges on a function in revcommonlibrary:

function revStackNameIsIDEStack pStackName
  if there is a stack pStackName and the _ideoverride of stack pStackName then
     return true
else if pStackName is among the items of "message box,answer dialog,ask dialog,home" then
     return true
  else if pStackName begins with "com.livecode." then
     return true
else if pStackName is among the lines of revInternal__ListLoadedLibraries() then
     return true
  else
     return pStackName begins with "rev"
  end if
end revStackNameIsIDEStack

We could look at changing that to ensure the filename of the stack is an IDE or plugin file path but in your case just patching that to set the caseSensitive to true just before checking for “rev” would cover it.

Cheers

Monte


_______________________________________________
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