Hi,

For refresh we currently use now HIViewSetNeedsDisplayInRect and will continue to use this with the new HIToolbox controls

Sebastien

Philipp Lohmann - Sun Germany a écrit :
Mox Soini wrote:
On 3/28/07, Philipp Lohmann - Sun Germany <[EMAIL PROTECTED]> wrote:
You're all talking about stopping SalTimer because of paint handling.
This is not correct at all, SalTimer is the central mwthod for Timer
base stuff in the whole of OOo - the paint timer is just one Timer of
many. So simply not implementing SalTimer will not gain you much, the
office will not work very well since so much of it is timer based. If
you want to disable the timer based paint handling you'll have to look
in vcl/source/window/window.cxx where (sadly in the independent part)
where you can disable the asynchronous paint handling.
Ah, I guessed saltimer was not only about paint events :) So I'm only
speaking about the painting part of SalTimer.

If we disable asynchronous handling, does that break the refresh? Or
are we still getting everything drawn (although in smaller pieces)?

It should work. However since this involves changing timing behaviour
(application basically do whatever they want in their paint handlers)
I'd expect a few glitches here and there.

to the system itself which it currently is not - I assume that there is
a method on MacOSX to trigger a paint event through the system.
I think the closest equivalent in mac is a sort of "invalidate region"
-function which then marks that area dirty (MacOSX itself decides
_when_ that dirty area is repainted)

So switching to use ::Invalidate (region?) and then implementing a
aqua native version of that would be propably the good way to go. Of
course this will need some long term work.

Now, what does that "painting directly" really mean? If that direct
painting is already handled by current native VCL implementations,
then I think we can also do that for Mac OS X so that we have a
mixture of direct paints and ::Invalidates... and we fix the direct
paints to invalidates in the long run.

This would be the right way to go IMHO.

So can these direct paint -> invalidate changes be done for all
platforms then? This would make it lot easier to detect bugs. It would
also probably be good to do those on a separate cws, not on
aquavcl01...

On Windows we could use InvalidateRect for this, on X11 based platforms
we could synthesize an Expose event and pout it into the queue. Or send
ourselves a user event to achieve the same thing.

Kind regards, pl


Reply via email to