[virt-tools-list] [PATCH 5 of 5] viewer: add support for spice resize-guest

Marc-André Lureau marcandre.lureau at redhat.com
Tue Nov 30 15:08:33 UTC 2010


# HG changeset patch
# User Marc-André Lureau <marcandre.lureau at redhat.com>
# Date 1291129043 -3600
# Node ID c70342548912fdd4a7db841dedf54753c756229e
# Parent  4ac66a955d7bf718ce85e8ffd0be00f0c4ad8ac6
viewer: add support for spice resize-guest

And also turn on clipboard sharing.

diff -r 4ac66a955d7b -r c70342548912 src/display-spice.c
--- a/src/display-spice.c	Tue Nov 30 13:59:01 2010 +0100
+++ b/src/display-spice.c	Tue Nov 30 15:57:23 2010 +0100
@@ -211,6 +211,8 @@
 		g_object_set(self->display,
 			     "grab-keyboard", TRUE,
 			     "grab-mouse", TRUE,
+			     "resize-guest", TRUE,
+			     "auto-clipboard", TRUE,
 			     NULL);
 		viewer_add_display_and_realize(display->viewer);
 		viewer_initialized(display->viewer);
@@ -262,6 +264,7 @@
 	self = g_object_new(VIRT_VIEWER_TYPE_DISPLAY_SPICE, NULL);
 	d = VIRT_VIEWER_DISPLAY(self);
 	d->viewer = viewer;
+	d->need_align = FALSE;
 
 	self->session = spice_session_new();
 	g_signal_connect(self->session, "channel-new",
diff -r 4ac66a955d7b -r c70342548912 src/display-vnc.c
--- a/src/display-vnc.c	Tue Nov 30 13:59:01 2010 +0100
+++ b/src/display-vnc.c	Tue Nov 30 15:57:23 2010 +0100
@@ -264,6 +264,7 @@
 	d->viewer = viewer;
 	viewer->display = d;
 
+	d->need_align = TRUE;
 	d->widget = vnc_display_new();
 	self->vnc = VNC_DISPLAY(d->widget);
 	vnc_display_set_keyboard_grab(self->vnc, TRUE);
diff -r 4ac66a955d7b -r c70342548912 src/display.h
--- a/src/display.h	Tue Nov 30 13:59:01 2010 +0100
+++ b/src/display.h	Tue Nov 30 15:57:23 2010 +0100
@@ -49,6 +49,7 @@
 /* perhaps this become an interface, and be pushed in gtkvnc and spice? */
 struct _VirtViewerDisplay {
 	GObject parent;
+	gboolean need_align;
 	VirtViewer *viewer;
 	GtkWidget *widget;
 };
diff -r 4ac66a955d7b -r c70342548912 src/viewer.c
--- a/src/viewer.c	Tue Nov 30 13:59:01 2010 +0100
+++ b/src/viewer.c	Tue Nov 30 15:57:23 2010 +0100
@@ -130,8 +130,15 @@
 	g_return_if_fail(viewer->display->widget != NULL);
 
 	notebook = glade_xml_get_widget(viewer->glade, "notebook");
-	align = glade_xml_get_widget(viewer->glade, "display-align");
-	gtk_container_add(GTK_CONTAINER(align), viewer->display->widget);
+	if (viewer->display->need_align) {
+		align = glade_xml_get_widget(viewer->glade, "display-align");
+		gtk_container_add(GTK_CONTAINER(align), viewer->display->widget);
+	} else {
+		gtk_notebook_remove_page(GTK_NOTEBOOK(notebook), 2);
+		if (gtk_notebook_insert_page(GTK_NOTEBOOK(notebook), viewer->display->widget,
+					     NULL, 2) == -1)
+			g_warning("failed to insert a notebook page");
+	}
 
 	if (!viewer->window) {
 		gtk_container_add(GTK_CONTAINER(viewer->container), GTK_WIDGET(notebook));
@@ -763,9 +770,9 @@
 	g_return_if_fail(viewer->display->widget != NULL);
 
 	notebook = glade_xml_get_widget(viewer->glade, "notebook");
-	gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook), 1);
-
 	gtk_widget_show(viewer->display->widget);
+	gtk_notebook_set_current_page(GTK_NOTEBOOK(notebook),
+				      viewer->display->need_align ? 1 : 2);
 }
 
 static void viewer_connect_info_free(VirtViewer *viewer)
diff -r 4ac66a955d7b -r c70342548912 src/viewer.glade
--- a/src/viewer.glade	Tue Nov 30 13:59:01 2010 +0100
+++ b/src/viewer.glade	Tue Nov 30 15:57:23 2010 +0100
@@ -332,6 +332,23 @@
                 <property name="tab_fill">False</property>
               </packing>
             </child>
+            <child>
+              <placeholder/>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child>
+              <widget class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">page 3</property>
+              </widget>
+              <packing>
+                <property name="type">tab</property>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
           </widget>
           <packing>
             <property name="position">1</property>




More information about the virt-tools-list mailing list