summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMarc-André Lureau <marcandre.lureau@redhat.com>2010-11-30 15:57:23 +0100
committerMarc-André Lureau <marcandre.lureau@redhat.com>2010-11-30 15:57:23 +0100
commitbe22c7dcf0f2fc0f9d384e3c7faa4897477a8f9a (patch)
tree356d10738bdeb4b1a24351d11fecb53f28c1c0ae /src
parent155a03f9c83ade6b849dca401f5c176bccf4123a (diff)
viewer: add support for spice resize-guest
And also turn on clipboard sharing.
Diffstat (limited to 'src')
-rw-r--r--src/display-spice.c3
-rw-r--r--src/display-vnc.c1
-rw-r--r--src/display.h1
-rw-r--r--src/viewer.c15
-rw-r--r--src/viewer.glade17
5 files changed, 33 insertions, 4 deletions
diff --git a/src/display-spice.c b/src/display-spice.c
index e91f357..9ef0b2d 100644
--- a/src/display-spice.c
+++ b/src/display-spice.c
@@ -211,6 +211,8 @@ static void _spice_channel_new(SpiceSession *s, SpiceChannel *channel,
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 @@ VirtViewerDisplaySpice* virt_viewer_display_spice_new(VirtViewer *viewer)
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 --git a/src/display-vnc.c b/src/display-vnc.c
index 96bc382..a51a068 100644
--- a/src/display-vnc.c
+++ b/src/display-vnc.c
@@ -264,6 +264,7 @@ VirtViewerDisplayVNC* virt_viewer_display_vnc_new(VirtViewer *viewer)
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 --git a/src/display.h b/src/display.h
index 45931b4..8a23741 100644
--- a/src/display.h
+++ b/src/display.h
@@ -49,6 +49,7 @@ G_BEGIN_DECLS
/* perhaps this become an interface, and be pushed in gtkvnc and spice? */
struct _VirtViewerDisplay {
GObject parent;
+ gboolean need_align;
VirtViewer *viewer;
GtkWidget *widget;
};
diff --git a/src/viewer.c b/src/viewer.c
index 6ec021a..5d63343 100644
--- a/src/viewer.c
+++ b/src/viewer.c
@@ -130,8 +130,15 @@ void viewer_add_display_and_realize(VirtViewer *viewer)
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 @@ static void viewer_show_display(VirtViewer *viewer)
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 --git a/src/viewer.glade b/src/viewer.glade
index 8195ad5..3bc0aa2 100644
--- a/src/viewer.glade
+++ b/src/viewer.glade
@@ -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>