[PATCH][virt-viewer] Force displays to update geometry when agent connects

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We have to force displays to update geometry when the agent connects to
ensure the client will have the guest with the right resolution when the
guest has rebooted or the agent has crashed,
---
 src/virt-viewer-session-spice.c | 4 ++++
 src/virt-viewer-session.c       | 4 ++++
 src/virt-viewer-session.h       | 1 +
 3 files changed, 9 insertions(+)

diff --git a/src/virt-viewer-session-spice.c b/src/virt-viewer-session-spice.c
index b6886be..a27d433 100644
--- a/src/virt-viewer-session-spice.c
+++ b/src/virt-viewer-session-spice.c
@@ -618,6 +618,10 @@ agent_connected_changed(SpiceChannel *cmain G_GNUC_UNUSED,
 {
     // this will force refresh of application menu
     g_signal_emit_by_name(self, "session-display-updated");
+
+    /* this will force update displays geometry when the agent has connected
+     * after the application (eg: rebooting the guest) */
+    virt_viewer_session_update_displays_geometry(VIRT_VIEWER_SESSION(self));
 }
 
 static void
diff --git a/src/virt-viewer-session.c b/src/virt-viewer-session.c
index c432719..d9c84a6 100644
--- a/src/virt-viewer-session.c
+++ b/src/virt-viewer-session.c
@@ -476,6 +476,10 @@ void virt_viewer_session_clear_displays(VirtViewerSession *session)
     session->priv->displays = NULL;
 }
 
+void virt_viewer_session_update_displays_geometry(VirtViewerSession *session)
+{
+    virt_viewer_session_on_monitor_geometry_changed(session, NULL);
+}
 
 
 void virt_viewer_session_close(VirtViewerSession *session)
diff --git a/src/virt-viewer-session.h b/src/virt-viewer-session.h
index 316fdf0..ba0f6b2 100644
--- a/src/virt-viewer-session.h
+++ b/src/virt-viewer-session.h
@@ -107,6 +107,7 @@ void virt_viewer_session_add_display(VirtViewerSession *session,
 void virt_viewer_session_remove_display(VirtViewerSession *session,
                                         VirtViewerDisplay *display);
 void virt_viewer_session_clear_displays(VirtViewerSession *session);
+void virt_viewer_session_update_displays_geometry(VirtViewerSession *session);
 
 void virt_viewer_session_close(VirtViewerSession* session);
 gboolean virt_viewer_session_open_fd(VirtViewerSession* session, int fd);
-- 
1.9.3

_______________________________________________
virt-tools-list mailing list
virt-tools-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/virt-tools-list




[Index of Archives]     [Linux Virtualization]     [KVM Development]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]     [Video 4 Linux]

  Powered by Linux