Hi Julian-
We are also using the MDI library for a large ERP-style application
and experienced the same issue you are describing. The problem for
us related to the updateStyles() method in the MDIWindow class in
the library. It seems when the code was checking for hasFocus
there was a lot of unnecessary (for our needs anyways) re-setting of
styles using the .setStyle notation. This is a slow operation when
you have windows with a lot of controls or heavy controls like the
DataGrid. We made modifications to the MDIWindow class because we
could not edit what we needed through sub-classing because
the _hasFocus stuff wasn't accessible. So we made it accessible
then overwrote it in a new sub-class that doesn't do anything (omits
the updateStyles() call. But this made the min,max,resize window
controls out of whack because they weren't getting updated. So we
solved that issue by sub-classing the MDIWindowControlsContainer and
overriding updateDisplayList to position everything correctly no
matter what state the window was in.
After making these changes everything was superfast as far as
switching focus between windows, tiling windows, minimizing,
maximizing, no matter how many controls or rows/columns for the
datagrids. So, we made our changes for our specific needs which are
probably not suitable for everyone, but if you minimize or eliminate
the unnnecessary calls to updateStyles() in MDIWindow you should
see a major improvement. Especially without having to switch to
another library or write something on your own. The FlexMDI is a
great library.
HTH-
Steve