[virt-tools-list] [PATCH virt-viewer] Disable CSD to avoid rendering issues

Pavel Grunt pgrunt at redhat.com
Fri Aug 12 21:53:30 UTC 2016


On Wed, 2016-08-10 at 15:41 +0100, Daniel P. Berrange wrote:
> On Wed, Aug 10, 2016 at 08:35:49AM +0200, Fabiano Fidêncio wrote:
> > 
> > Pavel,
> > 
> > On Tue, Aug 9, 2016 at 5:29 PM, Pavel Grunt <pgrunt at redhat.com> wrote:
> > > 
> > > On Tue, 2016-08-09 at 15:57 +0100, Daniel P. Berrange wrote:
> > > > 
> > > > On Tue, Aug 09, 2016 at 04:40:02PM +0200, Pavel Grunt wrote:
> > > > > 
> > > > > 
> > > > > On Tue, 2016-08-09 at 15:12 +0100, Daniel P. Berrange wrote:
> > > > > > 
> > > > > > 
> > > > > > On Tue, Aug 09, 2016 at 04:09:15PM +0200, Pavel Grunt wrote:
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > Due to recent changes in gtk+ the content of window is not
> > > > > > > rendered
> > > > > > > properly in Windows 10 when the client side decorations are used.
> > > > > > > 
> > > > > > > It is possible to disable the client side decorations using
> > > > > > > the GTK_CSD="0" environment variable.
> > > > > > > 
> > > > > > > Keep them disabled to avoid issues.
> > > > > > > 
> > > > > > > Related:
> > > > > > > https://bugzilla.redhat.com/show_bug.cgi?id=1352216
> > > > > > 
> > > > > > Can you provide the actual GTK bug report for this issue.
> > > > > 
> > > > > I am working on reproducer for the issue. Apparently only remote-
> > > > > viewer has
> > > > > problems.
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > 
> > > > > > > ---
> > > > > > > I know it is not a solution. virt-viewer should learn to work
> > > > > > > properly
> > > > > > > with
> > > > > > > CSD
> > > > > > > ---
> > > > > > >  src/virt-viewer-util.c | 2 ++
> > > > > > >  1 file changed, 2 insertions(+)
> > > > > > > 
> > > > > > > diff --git a/src/virt-viewer-util.c b/src/virt-viewer-util.c
> > > > > > > index 0491f73..1b0335d 100644
> > > > > > > --- a/src/virt-viewer-util.c
> > > > > > > +++ b/src/virt-viewer-util.c
> > > > > > > @@ -295,6 +295,8 @@ void virt_viewer_util_init(const char
> > > > > > > *appname)
> > > > > > >          }
> > > > > > >      }
> > > > > > >  #endif
> > > > > > > +    /* FIXME: avoid rendering issues with csd - used by default
> > > > > > > in
> > > > > > > Win10*/
> > > > > > > +    g_setenv("GTK_CSD", "0", TRUE);
> > > > > > 
> > > > > > At the version least you should make this hidden behind G_OS_WIN32,
> > > > > > even better if you can make it only happen on Win10 at runtime.
> > > > > 
> > > > > I wanted to keep it for every OS so it is harder to forget about
> > > > > fixing it.
> > > > 
> > > > Nope that'll break virt-viewer when run under Wayland, since AFAIK, the
> > > > Wayland compositors all request CSD
> > > 
> > > GTK_CSD is ignored under Wayland/when cannot be used. But I can of course
> > > move
> > > it up to the G_OS_WIN32 to make it more clear.
> > 
> > I also prefer inside a G_OS_WIN32 ifdef.
> > Another thing is that this solution is a temporary hack. So, I'd like
> > to suggest to apply it only in the 4.0-maint branch.
> 
> It is bad practice to apply a fix only to a maint branch, as that opens
> the possibility of forgetting to fix it in master, which means users
> would see a regression on the next release. Fixes should always go into
> master first, and then stable branches, even if we intend to do a better
> fix in master at some point in the future.
I agree.

Anyway thinking about planned changes mentioned in Fabiano's email from June:
https://www.redhat.com/archives/virt-tools-list/2016-June/msg00076.html
is better to drop the patch - these changes would force CSD -> cause drawing
issues.

After some investigation and discussion on the #gtk+ irc channel patches to
solve the rendering issues were submitted for gtk-vnc & spice-gtk

Thanks,
Pavel
> 
> Regards,
> Daniel




More information about the virt-tools-list mailing list