slow URI latency issue ...



Hi there,

	I just noticed that when loading a slow URI nautilus does some odd
things, that means that the application in question can't render any
content before it's completed the 'PersistFoo::load' method.

	This is due to 2 reasons:

	Firstly the adaptor tried to send a 'report_load_underway' signal to
nautilus main - but this could not get out until the load method had
completed - since it was queued until the g_idle loop was hit. This
means that nautilus was unaware that loading was in progress and thus
couldn't switch to the new (loading in progress) view.

	Secondly even if the signal could have got through, the adaptor was
blocking the processing of X events, while in the 'load' CORBA stub
invocation [ quite rightly ], the problem with that is that the size
allocation logic for the embedded eg. EOG component - could not occur
since it needs X traffic, and thus we would end up with a badly sized
control [ amusing to see only the top left 50x50 pixels of an image ].

	So - after playing with several solutions - I made the 'load' method
asynchronous; thus the adaptor will return to it's idle loop, process
the geometry management, the load will continue, we'll get a more
responsive feel - and (in due course) we'll be able to get progressive
network image loading to work nicely [ EOG patch in progress ].

	So - just to explain why / what I've done. The only user visible
effects currently should be snappier image viewing, and a period where
there's only a grey rectangle, before EOG renders it's content.

	Regards,

		Michael.

-- 
 mmeeks gnu org  <><, Pseudo Engineer, itinerant idiot




[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]