qemu/ui
Daniel P. Berrange b69a553b4a ui: fix refresh of VNC server surface
In previous commit

  commit c7628bff41
  Author: Gerd Hoffmann <kraxel@redhat.com>
  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 <berrange@redhat.com>
Reviewed-by: Peter Lieven <pl@kamp.de>
Tested-by: Peter Lieven <pl@kamp.de>
Message-id: 1471365032-18096-1-git-send-email-berrange@redhat.com
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
2016-08-30 11:20:24 +01:00
..
shader console-gl: add opengl rendering helper functions 2015-05-05 10:48:22 +02:00
cocoa.m Fix some typos found by codespell 2016-05-18 15:04:27 +03:00
console-gl.c ui/console-gl: Add support for big endian display surfaces 2016-06-10 11:13:59 +02:00
console.c virgl: pass whole GL scanout dimensions 2016-07-06 10:32:14 +02:00
curses_keys.h Clean up decorations and whitespace around header guards 2016-07-12 16:20:46 +02:00
curses.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
cursor_hidden.xpm
cursor_left_ptr.xpm
cursor.c coccinelle: Remove unnecessary variables for function return value 2016-06-20 16:38:13 +02:00
egl-context.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
egl-helpers.c ui: egl: Replace fprintf with error_report 2016-06-03 08:23:26 +02:00
gtk-egl.c virgl: pass whole GL scanout dimensions 2016-07-06 10:32:14 +02:00
gtk-gl-area.c gtk: fix build 2016-07-11 10:40:29 +01:00
gtk.c gtk: fix vte version check 2016-06-10 11:13:15 +02:00
input-keymap.c qapi: Don't special-case simple union wrappers 2016-03-18 10:29:26 +01:00
input-legacy.c qapi: Don't special-case simple union wrappers 2016-03-18 10:29:26 +01:00
input-linux.c input-linux: better capability checks, merge input_linux_event_{mouse, keyboard} 2016-07-12 09:25:50 +02:00
input.c qapi: Don't special-case simple union wrappers 2016-03-18 10:29:26 +01:00
keymaps.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
keymaps.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
Makefile.objs input: linux evdev support 2016-03-08 12:20:11 +01:00
qemu-pixman.c coccinelle: Remove unnecessary variables for function return value 2016-06-20 16:38:13 +02:00
qemu-x509.h
sdl2-2d.c SDL2: add bgrx pixel format 2016-06-03 08:23:26 +02:00
sdl2-gl.c virgl: pass whole GL scanout dimensions 2016-07-06 10:32:14 +02:00
sdl2-input.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
sdl2-keymap.h
sdl2.c sdl2: skip init without outputs 2016-06-03 08:23:26 +02:00
sdl_keysym.h
sdl_zoom_template.h
sdl_zoom.c all: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
sdl_zoom.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
sdl.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
shader.c Changed malloc to g_malloc, free to g_free in ui/shader.c 2016-05-12 16:41:46 +02:00
spice-core.c ui: spice: Exit if gl=on EGL init fails 2016-06-03 08:23:26 +02:00
spice-display.c virgl: pass whole GL scanout dimensions 2016-07-06 10:32:14 +02:00
spice-input.c qapi: rename input buttons 2016-03-01 08:19:07 +01:00
trace-events trace-events: fix first line comment in trace-events 2016-08-12 10:36:01 +01:00
vgafont.h
vnc_keysym.h qemu-char: add cyrillic characters 'numerosign' to VNC keysyms 2015-03-10 08:15:34 +03:00
vnc-auth-sasl.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
vnc-auth-sasl.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
vnc-auth-vencrypt.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
vnc-auth-vencrypt.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
vnc-enc-hextile-template.h
vnc-enc-hextile.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-tight.c vnc-tight: fix regression with libxenstore 2016-07-15 12:11:55 +02:00
vnc-enc-tight.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
vnc-enc-zlib.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-zrle-template.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-zrle.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-zrle.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
vnc-enc-zywrle-template.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-enc-zywrle.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
vnc-jobs.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
vnc-jobs.h ui/vnc: Remove vnc_stop_worker_thread() 2015-03-10 08:15:33 +03:00
vnc-palette.c all: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
vnc-palette.h all: Clean up includes 2016-02-23 12:43:05 +00:00
vnc-ws.c qemu-common: stop including qemu/bswap.h from qemu-common.h 2016-05-19 16:42:28 +02:00
vnc-ws.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
vnc.c ui: fix refresh of VNC server surface 2016-08-30 11:20:24 +01:00
vnc.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
x_keymap.c ui: Clean up includes 2016-02-04 17:01:04 +00:00
x_keymap.h