[virt-tools-list] [PATCH virt-viewer 2/2] RFC: resize: simplify and isolate fullscreen aspect logic

Marc-André Lureau mlureau at redhat.com
Wed Mar 12 17:30:45 UTC 2014



----- Original Message -----
> On Wed, Mar 12, 2014 at 07:51:21AM -0400, Marc-André Lureau wrote:
> > 
> > 
> > ----- Original Message -----
> > > On Tue, Mar 11, 2014 at 04:18:59PM +0000, Daniel P. Berrange wrote:
> > > > On Tue, Mar 11, 2014 at 04:38:46PM +0100, Marc-André Lureau wrote:
> > > > > From: Marc-André Lureau <marcandre.lureau at redhat.com>
> > > > > 
> > > > > Tbh, I don't understand the purpose of this code (both spice and vnc
> > > > > widgets keep the aspect ration), I would welcome some comments. I am
> > > > > not
> > > > > sure why we check fullscreen display resolution in window mode
> > > > > either,
> > > > > so I moved the code in if (priv->fullscreen)
> > > > > 
> > > > > If it's possible, this code should be removed (surrouding with if 0
> > > > > doesn't seem to change anything here with spice or vnc). Please help
> > > > > me
> > > > > to understand that logic.
> > > > > ---
> > > > >  src/virt-viewer-window.c | 63
> > > > >  +++++++++++++++++++++++-------------------------
> > > > >  1 file changed, 30 insertions(+), 33 deletions(-)
> > > > 
> > > > When the guest resolution exceeds the host resolution we need to scale
> > > > to ensure we can see the full extent of the guest desktop. If I remove
> > > > this code, then as you say, there doesn't appear to be any functional
> > > > impact. When the guest resizes, the window resizes sensibly every time,
> > > > scaling when too large.
> > > > 
> > > > The caveat is that this only works corretly with GTK-3.0 If I build
> > > > virt-viewer for GTK-2.0 then the window size isn't limited by GTK
> > > > and exceeds the size of the desktop. So this code is basically
> > > > working around a limitation fo GTK-2.0
> > > 
> > > BTW, when RHEL-7.0 is finally released I suggest that we could /
> > > should drop support for GTK-2.0, at which point this discussion
> > > point becomes moot, since GTK-3.0 will already do the right thing
> > > itself
> > 
> > We would still welcome a solution for RHEL6.
> 
> What about the fix I suggested elsewhere in the thread
> 
> diff --git a/src/virt-viewer-window.c b/src/virt-viewer-window.c
> index 05d5fe7..c2551d4 100644
> --- a/src/virt-viewer-window.c
> +++ b/src/virt-viewer-window.c
> @@ -446,11 +446,11 @@ virt_viewer_window_resize(VirtViewerWindow *self,
> gboolean keep_win_size)
>          /* Doesn't fit native res, so go as large as possible
>             maintaining aspect ratio */
>          if (screenAspect > desktopAspect) {
> -            width = desktopHeight * desktopAspect;
> -            height = desktopHeight;
> +            width = (fullscreen.height - 128) * desktopAspect;
> +            height = (fullscreen.height - 128);
>          } else {
> -            width = desktopWidth;
> -            height = desktopWidth / desktopAspect;
> +            width = (fullscreen.width - 128);
> +            height = (fullscreen.width - 128) / desktopAspect;
>          }
>      } else {
>          width = desktopWidth;
> 
> 
> if that's not sufficient, then perhaps we should just remove
> the '-128' fudge factor, so we're not trying to second guess
> panel size.

That should solve the most important issue, being this code triggered when just maximizing the window: ack from me.

> 
> Regards,
> Daniel
> --
> |: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
> |: http://libvirt.org              -o-             http://virt-manager.org :|
> |: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
> |: http://entangle-photo.org       -o-       http://live.gnome.org/gtk-vnc :|
> 
> _______________________________________________
> virt-tools-list mailing list
> virt-tools-list at redhat.com
> https://www.redhat.com/mailman/listinfo/virt-tools-list




More information about the virt-tools-list mailing list