On Mon, Jun 08, 2009 at 01:27:58PM +0200, Pierre Ossman wrote:
> The comparing update tracker is buggy in that it assumes that every
> update is properly contained within the framebuffer dimensions. This
> assumption does not always hold and as a result a lot of updates get
> lost. It was found using mplayer and kwin3 when going in and out of
> fullscreen.
> 
> Patch is to be applied for 1.0.
> 
> ---
> Index: common/rfb/ComparingUpdateTracker.cxx
> ===================================================================
> --- common/rfb/ComparingUpdateTracker.cxx     (revision 3829)
> +++ common/rfb/ComparingUpdateTracker.cxx     (working copy)
> @@ -73,7 +73,11 @@
>  void ComparingUpdateTracker::compareRect(const Rect& r, Region* newChanged)
>  {
>    if (!r.enclosed_by(fb->getRect())) {
> -    fprintf(stderr,"ComparingUpdateTracker: rect outside fb 
> (%d,%d-%d,%d)\n", r.tl.x, r.tl.y, r.br.x, r.br.y);
> +    Rect safe;
> +    // Crop the rect and try again
> +    safe = r.intersect(fb->getRect());
> +    if (!safe.is_empty())
> +      compareRect(safe, newChanged);
>      return;
>    }

+1, patch is correct.

Regards, Adam

-- 
Adam Tkac, Red Hat, Inc.

------------------------------------------------------------------------------
Crystal Reports - New Free Runtime and 30 Day Trial
Check out the new simplified licensing option that enables unlimited
royalty-free distribution of the report engine for externally facing 
server and web deployment.
http://p.sf.net/sfu/businessobjects
_______________________________________________
Tigervnc-devel mailing list
Tigervnc-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/tigervnc-devel

Reply via email to