From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44230) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1bZhFm-0007jk-JM for qemu-devel@nongnu.org; Tue, 16 Aug 2016 12:30:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1bZhFj-0005Wl-Cv for qemu-devel@nongnu.org; Tue, 16 Aug 2016 12:30:14 -0400 Date: Tue, 16 Aug 2016 17:30:07 +0100 From: "Daniel P. Berrange" Message-ID: <20160816163007.GL25115@redhat.com> Reply-To: "Daniel P. Berrange" References: <1471364482-6649-1-git-send-email-berrange@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1471364482-6649-1-git-send-email-berrange@redhat.com> Subject: Re: [Qemu-devel] [PATCH for 2.7] ui: fix refresh of VNC server surface List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Gerd Hoffmann , qemu-stable@nongnu.org On Tue, Aug 16, 2016 at 05:21:22PM +0100, Daniel P. Berrange wrote: > In previous commit > > commit c7628bff4138ce906a3620d12e0820c1cf6c140d > Author: Gerd Hoffmann > Date: Fri Oct 30 12:10:09 2015 +0100 > > vnc: only alloc server surface with clients connected > > the VNC server was changed so that the 'vd->server' pixman > image was only allocated when a client is connected. > > Since then if a client disconnects and then reconnects to > the VNC server all they will see is a black screen until > they do something that triggers a refresh. On a graphical > desktop this is not often noticed since there's many things > going on which cause a refresh. On a plain text console it > is really obvious since nothing refreshes frequently. > > The problem is that the VNC server didn't update the guest > dirty bitmap, so still believes its server image is in sync > with the guest contents. > > To fix this we must explicitly mark the entire guest desktop > as dirty after re-creating the server surface. Move this > logic into vnc_update_server_surface() so it is guaranteed > to be call in all code paths that re-create the surface > instead of only in vnc_dpy_switch() > > Signed-off-by: Daniel P. Berrange > --- > > NB This should go into 2.5 & 2.6 stable branches too > > ui/vnc.c | 17 +++++++++-------- > 1 file changed, 9 insertions(+), 8 deletions(-) And next time I'll make sure I committed all outstanding chunks before sending the email :-) Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|