[Lazarus] widgetset roadmap issue query

Michael Schnell mschnell at lumino.de
Wed Aug 24 13:54:32 CEST 2011


On 08/24/2011 12:24 PM, Marco van de Voort wrote:
> Where? The synchronize queue is in sysutils.
The events created by GUI actions and those created by 
TZThread.Synchronize and those created by PostMessage and aimed to 
"procedure...message" finally create actions calling the "Dispatch" 
mechanism. The current implementation obviously is that several parallel 
event queues are done for this. Obviously the main thread needs to wait 
until one of those queues changes from empty to not-empty. This "wait 
for multiple objects" needs to be implemented "somewhere". I understand 
that this is done in the "WidgetType"/"Interface" code that is compiled 
depending on the "LCLWidgetType" setting. Unfortunately this code is too 
complex to allow for quickly searching (and trying to singlestep crashes 
the debugger)

Anyway each single "WidgetType" code needs at lease to provide a hook 
for the queue. And thus it might or might not work depending on the 
Widget Type. This is what I think should be denoted in the Wiki.
> Please explain.
QueuAsyncCall is a class function of TApplication and TApplication uses 
a lot of the WidgetType depending code.

PostMessage with WidgetType Win32 just is an API call and with 
WigdgetTpe gtk2 performs something internally to the program and seems 
perfectly workable. With fpGUI it does not work. So it obviously depends 
on the WidgetType setting.

-Michael




More information about the Lazarus mailing list