While still there's no formal request for this it's something that will make the users lives easier. Signed-off-by: Fabiano Fidêncio <fabiano@xxxxxxxxxxxx> --- src/remote-viewer.c | 4 ++++ src/resources/ui/virt-viewer.ui | 19 +++++++++++++++++++ src/virt-viewer-window.c | 23 +++++++++++++++++++++++ src/virt-viewer-window.h | 1 + 4 files changed, 47 insertions(+) diff --git a/src/remote-viewer.c b/src/remote-viewer.c index 2313d73..16922cd 100644 --- a/src/remote-viewer.c +++ b/src/remote-viewer.c @@ -774,10 +774,14 @@ ovirt_foreign_menu_update(GtkApplication *gtkapp, GtkWindow *gtkwin, G_GNUC_UNUS RemoteViewer *self = REMOTE_VIEWER(gtkapp); VirtViewerWindow *win = g_object_get_data(G_OBJECT(gtkwin), "virt-viewer-window"); GtkButton *button = virt_viewer_window_get_button_change_cd(win); + GtkButton *fullscreen_button = virt_viewer_window_get_fullscreen_button_change_cd(win); gboolean has_ovirt_foreign_menu = self->priv->ovirt_foreign_menu != NULL; gtk_widget_set_sensitive(GTK_WIDGET(button), has_ovirt_foreign_menu); gtk_widget_set_visible(GTK_WIDGET(button), has_ovirt_foreign_menu); + + gtk_widget_set_sensitive(GTK_WIDGET(fullscreen_button), has_ovirt_foreign_menu); + gtk_widget_set_visible(GTK_WIDGET(fullscreen_button), has_ovirt_foreign_menu); } static void diff --git a/src/resources/ui/virt-viewer.ui b/src/resources/ui/virt-viewer.ui index c211440..7f93266 100644 --- a/src/resources/ui/virt-viewer.ui +++ b/src/resources/ui/virt-viewer.ui @@ -226,6 +226,25 @@ <property name="visible">True</property> <property name="show-close-button">True</property> <child> + <object class="GtkButton" id="fullscreen-change-cd"> + <property name="visible">False</property> + <property name="tooltip-text">Change CD</property> + <style> + <class name="image-button"/> + </style> + <child> + <object class="GtkImage" id="fullscreen-change-cd-icon"> + <property name="visible">True</property> + <property name="icon-name">media-optical-symbolic</property> + <property name="icon-size">1</property> + </object> + </child> + </object> + <packing> + <property name="pack-type">end</property> + </packing> + </child> + <child> <object class="GtkButton" id="fullscreen-usb-devices"> <property name="visible">False</property> <property name="tooltip-text">USB device selection</property> diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c index 60ab088..2544013 100644 --- a/src/virt-viewer-window.c +++ b/src/virt-viewer-window.c @@ -84,6 +84,7 @@ struct _VirtViewerWindowPrivate { GtkWidget *header; GtkWidget *fullscreen_headerbar; GtkWidget *toolbar_usb_device_selection; + GtkWidget *toolbar_change_cd; GtkAccelGroup *accel_group; VirtViewerNotebook *notebook; VirtViewerDisplay *display; @@ -981,6 +982,7 @@ static void virt_viewer_window_fullscreen_headerbar_setup(VirtViewerWindow *self) { GtkWidget *overlay; + GtkWidget *change_cd_button; GtkWidget *leave_fullscreen_button; GtkWidget *usb_devices_button; GtkWidget *send_keys_button; @@ -1001,10 +1003,23 @@ virt_viewer_window_fullscreen_headerbar_setup(VirtViewerWindow *self) g_signal_connect(usb_devices_button, "clicked", G_CALLBACK(virt_viewer_window_headerbar_usb_device_selection), self); + change_cd_button = GTK_WIDGET(gtk_builder_get_object(priv->builder, "fullscreen-change-cd")); + priv->toolbar_change_cd = change_cd_button; + g_signal_connect(change_cd_button, "clicked", + G_CALLBACK(virt_viewer_window_change_cd_cb), self); + priv->fullscreen_headerbar = GTK_WIDGET(gtk_builder_get_object(priv->builder, "fullscreen-headerbar")); priv->revealer = virt_viewer_timed_revealer_new(priv->fullscreen_headerbar); overlay = GTK_WIDGET(gtk_builder_get_object(priv->builder, "viewer-overlay")); gtk_overlay_add_overlay(GTK_OVERLAY(overlay), GTK_WIDGET(priv->revealer)); + + /* + * The timerevelear will show all the widgets that are part of it. + * As the "foreign-menu" must be not visible by default, we have to, + * explicitly, change its visibility here. + */ + gtk_widget_set_sensitive(priv->toolbar_change_cd, FALSE); + gtk_widget_set_visible(priv->toolbar_change_cd, FALSE); } VirtViewerNotebook* @@ -1346,6 +1361,14 @@ virt_viewer_window_get_button_change_cd(VirtViewerWindow *self) return GTK_BUTTON(gtk_builder_get_object(self->priv->builder, "change-cd")); } +GtkButton* +virt_viewer_window_get_fullscreen_button_change_cd(VirtViewerWindow *self) +{ + g_return_val_if_fail(VIRT_VIEWER_IS_WINDOW(self), NULL); + + return GTK_BUTTON(gtk_builder_get_object(self->priv->builder, "fullscreen-change-cd")); +} + GtkBuilder* virt_viewer_window_get_builder(VirtViewerWindow *self) { diff --git a/src/virt-viewer-window.h b/src/virt-viewer-window.h index 17cc6cf..a031032 100644 --- a/src/virt-viewer-window.h +++ b/src/virt-viewer-window.h @@ -80,6 +80,7 @@ void virt_viewer_window_leave_fullscreen(VirtViewerWindow *self); void virt_viewer_window_enter_fullscreen(VirtViewerWindow *self, gint monitor); GtkMenuButton *virt_viewer_window_get_menu_button_displays(VirtViewerWindow *self); GtkButton *virt_viewer_window_get_button_change_cd(VirtViewerWindow *self); +GtkButton *virt_viewer_window_get_fullscreen_button_change_cd(VirtViewerWindow *self); GtkBuilder* virt_viewer_window_get_builder(VirtViewerWindow *window); void virt_viewer_window_set_kiosk(VirtViewerWindow *self, gboolean enabled); -- 2.9.3 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list