You could try using a global variable set to 0 to process callback events and set to 1 if you want to skip event processing. Next in all your control callbacks you have to insert this instruction (at the very beginning):
if (processEvents) return 1;
The 'return 1' swallows all mouse and keyboard events (as if they weren't happened), so for example if the user clicks of numerics up and down arrows or types a new value the control is not updated.
When you decide to process events again simply set 'processEvents = 0' and all will work as usual.
Depending on the number of controls and callbacks in your panels, this operation can be tedious and you can forgive some callback. You could consider to simplify your code joining at least the simplest callbacks in one, de
tecting the control at the beginning (switch (control)...) and executing the proper code.
Hope this helps you a little.
Roberto