Hi,

On Tue, 2025-05-13 at 11:52 +0200, BALATON Zoltan wrote:
> On Tue, 13 May 2025, Weifeng Liu wrote:
> > Hi,
> > 
> > On Tue, 2025-05-13 at 00:37 +0000, Kim, Dongwon wrote:
> > > Hi,
> > > 
> > > > Subject: [PATCH 8/9] ui/gtk-gl-area: Render guest content with
> > > > padding in
> > > > fixed-scale mode
> > > > 
> > > > In fixed-scale mode (zoom-to-fit=false), we expect that scale
> > > > should not
> > > > change, meaning that if window size is larger than guest surface,
> > > > padding is
> > > 
> > > # @zoom-to-fit: Zoom guest display to fit into the host window.  When
> > > #     turned off the host window will be resized instead.  In case
> > > the
> > > #     display device can notify the guest on window resizes
> > > #     (virtio-gpu) this will default to "on", assuming the guest will
> > > #     resize the display to match the window size then.  Otherwise it
> > > #     defaults to "off".  (Since 3.1)
> > > 
> > > Current definition says the host window should be resized to fit the
> > > size of the guest surface instead. Wouldn't padding accommodate this?
> > > 
> > 
> > Yeah, window will be resized to fit the size of guest surface in fixed-
> > scale mode. However, users are still allowed to resize the window to a
> > larger size and this is case where padding is required, otherwise the
> > fixed-scale assumption is broken. In fact, gl=off mode employs padding
> > to preserve scale already but gl=on mode doesn't follow this behavior,
> > which, IMO, is a defect that this patch is trying to correct.
> 
> I think current set of switches is not enough to describe all possible 
> configs and this leads to inconsistency between display backends. Each 
> display backend has different idea on how zoom-to-fit should work now. 
> Maybe we need a new keep-aspect=off or similar option to make it explicit 
> then these can be set independently to decide if a full-screen zoom-to-fit 
> window should be stretched or padded. Currently it behaves differently 
> depending on display backend or even options of one display backend as you 
> say above. Fixing just one place won't solve the problem with other 
> backends so maybe separating this option into a new one would end this 
> inconsistency. I got requests from people for both padded or stretched 
> behaviour so it seems some prefer one or the other and just zoom-to-fit 
> can't set both.
> 

Thank you for pointing out the demand for both stretched and padded
behavior — allowing users to choose their preferred display makes a lot
of sense. With the changes in this patch set, we can at least ensure
that all GTK-based backends behave consistently with regard to aspect
ratio. I’ll follow up with a separate patch set to introduce the new
keep-aspect=off (or similar) option you suggested.

By the way, I’ve also been working on a “scale” option to let users
specify an exact zoom level. I deliberately left it out of this patch
set because I wanted to keep its scope narrowly focused on refactoring.
Once this set is merged, I’ll submit the new patch set with these
changes.

Best regards,
Weifeng

> Regards,
> BALATON Zoltan

Reply via email to