diff options
| author | Marc-André Lureau <marcandre.lureau@redhat.com> | 2010-11-30 15:57:23 +0100 |
|---|---|---|
| committer | Marc-André Lureau <marcandre.lureau@redhat.com> | 2010-11-30 15:57:23 +0100 |
| commit | be22c7dcf0f2fc0f9d384e3c7faa4897477a8f9a (patch) | |
| tree | 356d10738bdeb4b1a24351d11fecb53f28c1c0ae /src | |
| parent | 155a03f9c83ade6b849dca401f5c176bccf4123a (diff) | |
viewer: add support for spice resize-guest
And also turn on clipboard sharing.
Diffstat (limited to 'src')
| -rw-r--r-- | src/display-spice.c | 3 | ||||
| -rw-r--r-- | src/display-vnc.c | 1 | ||||
| -rw-r--r-- | src/display.h | 1 | ||||
| -rw-r--r-- | src/viewer.c | 15 | ||||
| -rw-r--r-- | src/viewer.glade | 17 |
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> |
