Even for those people who have decided to use it for their own purposes, the new extra field won't break that functionality - they can still access the context field in the same way.
That's of course correct. The idea behind my suggestion was just that the usage of all old code would immediately be ok and additionally accessible via the new function set, thus a smooth transition.
It's just that the new proper place to store such object pointers would be in the extra field using the two new functions.
I'm fine with this and it's 100% better than before.
I'm sure it was made clear that people shouldn't access the TGadget objects directly to ensure compatability with future versions - although it's tempting sometimes, usually alternatives can be found such as using TProxyGadget instead.
You probably know that we suggest to every new MaxGui user Assari's great tutorials which makes a good use of it and that since more than 2 years, so it is probably wide spread...
The only problem I can see is whether or not we should pass this value along with gadget events (which don't already use the EventExtra() parameter)
No we shouldn't !! It's absolutely perfect, the way it is, but would be nice to access the new field also more oop like Button.GadgetExtra() and not only via the function (and doesn't break in the future;).