> >
> > The problem with the primary monitor is solved by this earlier patch:
> >
> >   https://www.redhat.com/archives/virt-tools-list/2013-October/msg00047.html
> 
> which is already acked, but you should have put the rationale there,
> not in a different thread.

Yes, I should have mentioned this issue in that patch, sorry about that.

> 
> > Ideally we should probably make the code less fragile in response to
> > extraneous
> > zoom-level change notifications.
> 
> You state the obvious.

Well, the purpose of my statement was to admit that the previous patch wasn't a 
complete fix. I'd like to analyze how to fix it so that even if an extra 
zoom-level change notification does get emitted for some reason, it won't cause 
our auto-conf stuff to break.  I didn't think this was a completely obvious 
statement, but maybe it is ;)


> > - unfortunately, this "notify::fullscreen" signal handler doesn't get
> > called
> >   before the first allocation, because during the display setup, there's an
> >   explicit call to gtk_widget_realize() (which causes an allocation)
> >   between
> >   calls to g_object_freeze_notify() and g_object_thaw_notify(). Therefore,
> >   the
> >   first allocation happens before we can synchronize our fullscreen state
> >   properly, and as a result, we send a resize command down to the server
> >   (with a
> >   resolution of 100x198).
> 
> ok, can't it be blocked at this setup time? I think the rationale
> should be in the commit, if it's fixed by the following commit.


Perhaps it can be blocked here somehow, but I didn't want to break things for 
non-fullscreen-auto-conf cases.  And I couldn't be certain that blocking 
allocation-handling at this point wouldn't negatively affect some other case.  
And we also already have a mechanism to block allocation-based resizing (the 
fullscreen_changed() handler + auto_resize state variable), so I decided to try 
to simply make that mechanism work properly.


> > The simplest fix for the issue is show by the attached patches, but I'm
> > afraid
> > that these small changes could result in regressions in other areas, since
> > this
> > startup code is rather fragile.  Any thoughts?
> 
> No, any ideas (even high level) to make it "less fragile"? :)
>

Well, I had some vague ideas about introducing the concept of two separate 
application states: startup vs running.  During startup state, perhaps some 
handlers should be supressed, etc.  But I'm not sure that there's a simple way 
to determine when we've concluded 'startup state', and it seems like a fairly 
invasive change so I haven't pursued it yet.

Jonathon

_______________________________________________
virt-tools-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/virt-tools-list

Reply via email to