[virt-tools-list] [PATCH virt-viewer] Allow to fullscreen and position display independently
Hans de Goede
hdegoede at redhat.com
Thu May 9 11:40:12 UTC 2013
Hi,
I have one issue with this patch, it decouples the virt-viewer-window's
fullscreen state from the virt-viewer-app's fullscreen state.
This leads for example to the following undesirable situation:
1) user starts virt-viewer with --full-screen=auto-conf
2) Linux guest is booting, so only a single virt_viewer_window gets
created
3) VM reaches X, which triggers virt_viewer_session_spice_display_monitors
with monitors_max > 1
4) virt_viewer_app_window_new gets called for the extra monitors, calling
virt_viewer_app_set_fullscreen which re fullscreens the initial window
So I believe that if we do this we should rename the fullscreen state in
virt-viewer-app to "initial-window-state", indicating that it is a setting
applied only when a window first shows, and remove the looping over all
windows from virt_viewer_app_set_fullscreen, instead only applying the
state to the window being created from virt_viewer_app_window_new.
While making this change, I would like to also see the auto-conf setting
merged into the initial-window-state, so intial-window-state would be a
gint mapping to:
enum {
INITIAL_WINDOW_STATE_WINDOWED,
INITIAL_WINDOW_STATE_FULLSCREEN,
INITIAL_WINDOW_STATE_FULLSCREEN_AUTO_CONF
};
Thereby properly reflecting the 3 initial states we have, rather then having
2 gbooleans coding 4 states of which 1 is never used.
This whole removal of having a single fullscreen state (which now no longer is
true) in virt-viewer-app, and generic cleanup of the fullscreen handling
in virt-viewer-app, is IMHO best done in a separate patch, so ACK for this
patch.
Regards,
Hans
On 05/08/2013 08:24 PM, Marc-André Lureau wrote:
> Currently, going from window to fullscreen mode changes all display to
> fullscreen and realize automatic positionning on corresponding client
> monitor. However, it allows for much more flexibility to allow entering
> fullscreen on the current monitor each windows seperately. This way the
> user can decide on arbitrary monitor arrangement.
>
> https://bugzilla.redhat.com/show_bug.cgi?id=558241
> ---
> src/virt-viewer-window.c | 5 ++++-
> 1 file changed, 4 insertions(+), 1 deletion(-)
>
> diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c
> index c9e1ada..5c9a9db 100644
> --- a/src/virt-viewer-window.c
> +++ b/src/virt-viewer-window.c
> @@ -752,7 +752,10 @@ virt_viewer_window_menu_view_fullscreen(GtkWidget *menu,
> {
> gboolean fullscreen = gtk_check_menu_item_get_active(GTK_CHECK_MENU_ITEM(menu));
>
> - g_object_set(self->priv->app, "fullscreen", fullscreen, NULL);
> + if (fullscreen)
> + virt_viewer_window_enter_fullscreen(self, -1);
> + else
> + virt_viewer_window_leave_fullscreen(self);
> }
>
> G_MODULE_EXPORT void
>
More information about the virt-tools-list
mailing list