[virt-tools-list] virt-viewer: Having per window full-screen state causes monitor arrangement issues

Hans de Goede hdegoede at redhat.com
Fri Sep 20 12:36:37 UTC 2013


On 09/20/2013 02:06 PM, Marc-André Lureau wrote:
> Hi
> I think the issue is when a window go fullscreen, we take its monitor geometry and disable auto-alignment. This can cause overlap, when all monitors aren't fullscreen.
> When we leave fullscreen, ltr-alignment is applied, all is "fine"
> So it looks to me like we should do better alignment on "all" monitors whatever happens. I think current alignment spice-gtk code is too simple and needs to be improved. What do you think? I will try to see what I can do.

I agree some better alignment for the windowed / mixed case would be good.

What I suggest to do for now is do auto ltr arrangement using the current
algorithm, on all monitors (except for the all windows fullscreen case), and
update monitor coordinates for all monitors, including fullscreen ones, each
time a windows size changes (which includes going fullscreen / windowed).

As said the all windows fullscreen case is special, in that case we should
just use the actual physical monitor coordinates and not do any auto-align.



> ----- Original Message -----
>> Hi All,
>> While running some multi-monitor tests I've noticed that having per
>> window fullscreen causes problems with the monitor location inside
>> the guest.
>> IE try the following. Take a client with 2 physical monitors, both
>> running at 1920x1080. Lets call these phys1 and phys2 with phys1
>> being on the left, and phys2 on the right.
>> Now connect to a RHEL-6.5 vm. Put the remote-viewer window
>> on phys2, go to view displays and enable display 2, but the
>> window for display 2 on phys1.
>> Fullscreen both. All is well.
>> Now unfull screen display 2 (so the remote-viewer window on phys1), and
>> re-fullscreen it.
>> After this "xrandr --current" in the guest shows:
>> qxl-0 connected 1920x1080+400+0
>> qxl-1 connected 1920x1080+0+0
>> So now qxl-0 largely overlaps qxl-1, rather then being fully to the
>> right of it.
>> After a disconnect / reconnect and then fullscreening again, I can
>> even get the 2 to be complete clones of each other (so both are
>> at +0+0).
>> I have not debugged this, but I believe this is caused by the
>> x y coordinates for the monitor being send to the guest not being
>> updated for all monitors on fullscreen / un-fullscreen.
>> We should probably always update all of them on a single window
>> fullscreen / unfullscreen. And use our auto-align ltr code to
>> calculate the x+y coordinates, except when all windows are
>> fullscreen, then we should use the physical monitor coordinates.
>> Regards,
>> Hans
>> _______________________________________________
>> 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