I was transforming some plugins from R19 to R21, and I noticed a weird thing about the message behavior of a dialog in a tabbed GUI.
When the GUI-docked dialog is in a tab that is currently not visible, its CoreMessage() is no longer executed at all!
This is rather unfortunate since I rely on the dialog to handle certain messages from another thread that I send by SpecialEventAdd(). That is necessary to perform the desired actions in the main thread where they belong. But as the new behavior just kills off all messages, it's no longer possible to dock the dialog in a tab in the background.
I can find no documentation in the Core Message Manual (the link to "Core Messages" is wrong in the documentation for all four found instances of "CoreMessage", by the way) that such a change was made, although it might already have been in R20 and perhaps the doc dropped out for R21.
Thus: Is this a bug?
Or is it intentional? (Which is possible as CoreMessages are mainly for GUI updates, and dialogs in a currently-hidden tabs may not need GUI updates. Although that would mean that you cannot use SpecialEventAdd to send anything to a dialog because it would never receive it if tabbed invisibly, even if the event in question has nothing to do with the GUI.)
And do I have to use a completely new concept with a MessageData Plugin now? (As these have no GUI, I assume CoreMessage() would always be called.)