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
--
If you give someone a program, you will frustrate them for a day;
if you teach them how to program, you will frustrate them for a lifetime.
-- Author unknown
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]