Mike Hearn mike@theoretic.com writes:
I hit Google and found a page describing how to reduce flickering in FrontPage by writing a utility VB app using LockWindowUpdate and FindWindow, so clearly my initial implementation was wrong and this does need server support. The resultant code is also cleaner I feel.
Yes it's much better. Now the problem is that the rest of the code won't be able to cope with it: in order to make sure painting always happens correctly, you will need to invalidate all the DCEs concerned by the window, to make sure all the update regions are recomputed correctly. Unfortunately this can't be done inter-process at the moment...
On Fri, 2004-01-16 at 05:43, Alexandre Julliard wrote:
Yes it's much better. Now the problem is that the rest of the code won't be able to cope with it: in order to make sure painting always happens correctly, you will need to invalidate all the DCEs concerned by the window, to make sure all the update regions are recomputed correctly. Unfortunately this can't be done inter-process at the moment...
That went over my head I'm afraid. What do you mean by concerned?
Could you have told me this when I first submitted my patch? I feel it's been a bit of a waste of time now - looking at the code it seems that inter-process invalidation is not trivial thing.
Perhaps the code could be committed but disabled (just stick a return in the first line of LockWindowUpdate) with a comment in RedrawWindow to the effect of /* When inter-process invalidation is complete remember to re-enable LockWindowUpdate */ otherwise I expect by the time we get this feature everybody will have forgotten about the patch.
thanks -mike
Mike Hearn mike@theoretic.com writes:
That went over my head I'm afraid. What do you mean by concerned?
A DC would be concerned if it could have its visible region changed by the fact that the lock window is set, so this would be basically any DC used by the old and new lock windows and all their visible children.
Could you have told me this when I first submitted my patch? I feel it's been a bit of a waste of time now - looking at the code it seems that inter-process invalidation is not trivial thing.
Pretty much nothing in the painting code is trivial I'm afraid...
On Fri, 2004-01-16 at 22:39, Alexandre Julliard wrote:
A DC would be concerned if it could have its visible region changed by the fact that the lock window is set, so this would be basically any DC used by the old and new lock windows and all their visible children.
Is 'concerned' a technical term? I've not seen it in the Wine sources before. If so, is there a function anywhere to calculate the concerned DCs given a window?
Could you have told me this when I first submitted my patch? I feel it's been a bit of a waste of time now - looking at the code it seems that inter-process invalidation is not trivial thing.
Pretty much nothing in the painting code is trivial I'm afraid...
At the moment the invalid region is stored in WND yes, and to implement this properly it would have to be moved into the server and manipulated using server RPCs? I'm not going to attempt this myself, just wondering what it'd take (and maybe somebody will see this thread and write a patch).
On January 17, 2004 09:19 am, Mike Hearn wrote:
At the moment the invalid region is stored in WND yes, and to implement this properly it would have to be moved into the server and manipulated using server RPCs? I'm not going to attempt this myself, just wondering what it'd take (and maybe somebody will see this thread and write a patch).
There was also talk some time ago to redo the visible region handling through the server, but it seems other things took priority. This may also fix bugs like this one:
http://bugs.winehq.org/show_bug.cgi?id=1091
Alexandre, any news/plans on this front?
"Dimitrie O. Paun" dpaun@rogers.com writes:
There was also talk some time ago to redo the visible region handling through the server, but it seems other things took priority. This may also fix bugs like this one:
http://bugs.winehq.org/show_bug.cgi?id=1091
Alexandre, any news/plans on this front?
The plan is still the same, I expect to begin working on that soon.
Mike Hearn mike@theoretic.com writes:
Is 'concerned' a technical term? I've not seen it in the Wine sources before. If so, is there a function anywhere to calculate the concerned DCs given a window?
No it's not really a standard technical term. You need to walk the DCE list and check the window associated to each DCE to figure it out, something like what DCE_InvalidateDCE does.