Thanks, I saw those posts when I was researching this idea. I'm not working with FileMaker Go and a grid of invisible buttons is a clever, but seemingly inelegant (and rather cumbersome) solution.
So is the short answer to my question "no"?
The concept of making a layout for view only (all data entry controls disabled) and a separate edit layout mentioned in the first paragraph of the Soliant post will prevent commits (data changes) on the view only layout.
The second valuable idea in the Soiliant post is one of capturing data changes into global fields and explicitly saving the changes to the tables with scripting.
Either way you have greater control over commits.
OK. I see. I didn't notice the Soiliant link at first.
You can set a layout onRecordCommit trigger and a script like :
If [ $$commit.allow ]
Set variable [ $$commit.allow ; "" ]
Exit script [ True ]
Exit script [ False ]
And on the button that really commits the record, another script :
Set variable [ $$commit.allow ; True ]
An example with a different pre-event script trigger: Masquer des objets de modèle - 1-more-thing
You can also cover the body of the layout with a large invisible button or empty web viewer as an object that will keep the clicks from contacting the layout background and triggering the commit. For a button, select something like "continue" that doesn't actually do anything but does intercept the clicks.
Depending on your theme, you may have to alter the button's "hover" appearance so that your layout doesn't change color in one massive flash each time you move the mouse over the body of the layout.