[Lazarus] GTK2 paint event

José Mejuto joshyfun at gmail.com
Wed Dec 8 18:32:39 CET 2010


Hello Lazarus-List,

Working in the gecko port in GTK2 I had discovered something that
looks like a bug, but maybe not.

The gecko browser is using a GTK Window which is a TCustomControl,
once put in the form and started it does nothing unless the mouse is
moved over the form (not need to move over the control), so it looks
like a non processed message. After some tests I had decided to add a
timer to the form and in the event handler add
"Application.ProcessMessages" and now the window is rendered as
expected :-?

So for me it looks like the message filter in GTK2 is not being fired
with external paints.

Now a second problem with maybe same roots, once the control is
painted thanks to the Application.ProcessMessages every 100 ms if I
resize the window the control receives the paint message but the
painted content is not displayed unless I manually raise some kind of
form change like a caption change, so now my Paint handler looks like:

procedure TCustomGecko.Paint;
begin
  GeckoWindow.Paint(true); //force paint
  Self.Parent.Caption:=floattostr(now); //forces a form caption change
end;

This behavior does not look fine to me, but maybe anybody have a
different opinion. I'm using yesterday SVN of both fpc and Lazarus in
Ubuntu running in a VirtualBox VM.

If anybody have a suspect about the problem source I'll try any change
that anybody suggest. Thank you.

-- 
Best regards,
 José





More information about the Lazarus mailing list