[virt-tools-list] [PATCH v2 05/16] window/zoom: deal with VTE display differently

marcandre.lureau at redhat.com marcandre.lureau at redhat.com
Wed Sep 26 15:26:28 UTC 2018


From: Marc-André Lureau <marcandre.lureau at redhat.com>

VTE display doesn't use the desktop / window aspect ratio, let's just
call directly the functions handling zoom.

Signed-off-by: Marc-André Lureau <marcandre.lureau at redhat.com>
---
 src/virt-viewer-window.c | 28 ++++++++++++++++++++++------
 1 file changed, 22 insertions(+), 6 deletions(-)

diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c
index e50ac54..67e6f4f 100644
--- a/src/virt-viewer-window.c
+++ b/src/virt-viewer-window.c
@@ -42,6 +42,7 @@
 #include "virt-viewer-app.h"
 #include "virt-viewer-util.h"
 #include "virt-viewer-timed-revealer.h"
+#include "virt-viewer-display-vte.h"
 
 #include "remote-viewer-iso-list-dialog.h"
 
@@ -383,23 +384,35 @@ G_MODULE_EXPORT void
 virt_viewer_window_menu_view_zoom_out(GtkWidget *menu G_GNUC_UNUSED,
                                       VirtViewerWindow *self)
 {
-    virt_viewer_window_set_zoom_level(self,
-                                      virt_viewer_window_get_real_zoom_level(self) - ZOOM_STEP);
+    if (VIRT_VIEWER_IS_DISPLAY_VTE(self->priv->display)) {
+        virt_viewer_display_vte_zoom_out(VIRT_VIEWER_DISPLAY_VTE(self->priv->display));
+    } else {
+        virt_viewer_window_set_zoom_level(self,
+                                          virt_viewer_window_get_real_zoom_level(self) - ZOOM_STEP);
+    }
 }
 
 G_MODULE_EXPORT void
 virt_viewer_window_menu_view_zoom_in(GtkWidget *menu G_GNUC_UNUSED,
                                      VirtViewerWindow *self)
 {
-    virt_viewer_window_set_zoom_level(self,
-                                      virt_viewer_window_get_real_zoom_level(self) + ZOOM_STEP);
+    if (VIRT_VIEWER_IS_DISPLAY_VTE(self->priv->display)) {
+        virt_viewer_display_vte_zoom_in(VIRT_VIEWER_DISPLAY_VTE(self->priv->display));
+    } else {
+        virt_viewer_window_set_zoom_level(self,
+                                          virt_viewer_window_get_real_zoom_level(self) + ZOOM_STEP);
+    }
 }
 
 G_MODULE_EXPORT void
 virt_viewer_window_menu_view_zoom_reset(GtkWidget *menu G_GNUC_UNUSED,
                                         VirtViewerWindow *self)
 {
-    virt_viewer_window_set_zoom_level(self, NORMAL_ZOOM_LEVEL);
+    if (VIRT_VIEWER_IS_DISPLAY_VTE(self->priv->display)) {
+        virt_viewer_display_vte_zoom_reset(VIRT_VIEWER_DISPLAY_VTE(self->priv->display));
+    } else {
+        virt_viewer_window_set_zoom_level(self, NORMAL_ZOOM_LEVEL);
+    }
 }
 
 /* Kick GtkWindow to tell it to adjust to our new widget sizes */
@@ -1521,7 +1534,10 @@ virt_viewer_window_set_zoom_level(VirtViewerWindow *self, gint zoom_level)
 
     virt_viewer_display_set_zoom_level(VIRT_VIEWER_DISPLAY(priv->display), priv->zoomlevel);
 
-    virt_viewer_window_queue_resize(self);
+    if (VIRT_VIEWER_IS_DISPLAY_VTE(priv->display)) {
+    } else {
+        virt_viewer_window_queue_resize(self);
+    }
 }
 
 gint virt_viewer_window_get_zoom_level(VirtViewerWindow *self)
-- 
2.19.0.271.gfe8321ec05




More information about the virt-tools-list mailing list