what version of FM are you using and what OS?
Locate your additional windows "off the edge of the monitor". Then the window changes will not generate "flash". Also look out for Script triggers such as OnLayoutEnter, OnrecordLoad and a host of others that might be tripped by your script. They might also be contributing to the "flash" effects. It's a good idea to run a script like this in FileMaker Advanced's script debugger to watch for any triggers that might get tripped by your script. There are ways to keep them from doing anything that might interfere.
To open a window "off the edge", specify a small window size and a negative value such as -500 for the top or left position of the window. Don't forget to close the window in your script when done or it will show in the window menu but not on the screen.
Thanks for the replies. Here are some further thoughts.
- on version, i am using Pro Advanced v12 on OSX 10.11.15
- good thoughts on off screen positioning. I'll try that.
- I'll do a closer scrub on scripts that might be getting launched unknowingly.
- on stepping through with script debugger, I've done some of this and I cannot recreate the issue this way. that worries me actually and is what led to the post. I've not yet done an exhaustive step through as the loop runs about 1000-2000 iterations. but i'll do this more carefully and report back.
When it comes to screen refresh issues, you can't trust what you see on the monitor during runs thru the debugger as this updates your windows with every step and this won't be the same as doing it without the debugger.
There was a change with 10.10 or 10.11.
The window manager now renders windows sooner. So if the window is not yet drawn, you see only black.
Once the window draws, it will update and show contact.
Normally it's the job of the developer to make sure they provide quick drawing on request and not let the OS wait.
All longer operations should run on threads in background.
or in other words. This may not be a problem you can fix.
Locating the 'working' windows off the screen fixed my issue. They were the ones flickering. And I agree with Christian's post on how windows are rendering. But placing them out of view solved my issue. Thanks!
Even when I am going to display a new window for the user to use, I often open the window "Off the edge" first. I can adjust things like showing the tool bar etc as well as adjusting it to the optimum size (for list and table views, it can be useful to calculate the height of the window) before moving the window into view or (for form view) using Adjust Window [Reize to fit] to move the finalized window into view.