From: Dongwon Kim <dongwon....@intel.com> Drawing guest display frames can't be completed while the VC is not in visible state, which could result in timeout in both the host and the guest especially when using blob scanout. Therefore it is needed to update and track the visiblity status of the VC and unblock the pipeline in case when VC becomes invisible (e.g. windows minimization, switching among tabs) while processing a guest frame.
First patch (0001-ui-gtk-skip...) is introducing a flag 'visible' to VirtualConsole struct then set it only if the VC and its window is visible. Second patch (0002-ui-gtk-set-...) sets the ui size to 0 when VC is invisible when the tab is closed or deactivated. This notifies the guest that the associated guest display is not active anymore. Third patch (0003-ui-gtk-reset-visible...) adds a callback for GTK window-state-event. The flag, 'visible' is updated based on the minization status of the window. Dongwon Kim (3): ui/gtk: skip drawing guest scanout when associated VC is invisible ui/gtk: set the ui size to 0 when invisible ui/gtk: reset visible flag when window is minimized include/ui/gtk.h | 1 + ui/gtk-egl.c | 8 +++++++ ui/gtk-gl-area.c | 8 +++++++ ui/gtk.c | 62 ++++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 77 insertions(+), 2 deletions(-) -- 2.34.1