The new event model now causes all events to be posted to
the event queue where a separate thread takes them off hte queue and
dispatches them to client code.
In order to prevent frequent deadlock, it is essential that all
callbacks into client code (as a result of events) execute on this
one dispatch thread.
Currently, though, there is one area where this is not happneing
properly: when a Window is reshaped (either programmatically or by
the user). This reshape will generate a low-level reshape event in
the native code which results in a call up into client-code to
"validate" (relayout the contents of the newly sized window). This
is very dangerous and must be changed so that this reshape event
generates the proper ComponentEvent.RESIZED event which is placed on the
event queue, where validate will be called properly from the dispatch
thread.
the event queue where a separate thread takes them off hte queue and
dispatches them to client code.
In order to prevent frequent deadlock, it is essential that all
callbacks into client code (as a result of events) execute on this
one dispatch thread.
Currently, though, there is one area where this is not happneing
properly: when a Window is reshaped (either programmatically or by
the user). This reshape will generate a low-level reshape event in
the native code which results in a call up into client-code to
"validate" (relayout the contents of the newly sized window). This
is very dangerous and must be changed so that this reshape event
generates the proper ComponentEvent.RESIZED event which is placed on the
event queue, where validate will be called properly from the dispatch
thread.