[Pharo-project] About NonInteractiveUIManager>>#onSnapshot: and related

Camillo Bruni camillobruni at gmail.com
Wed Mar 21 07:00:36 EDT 2012

indeed the non-interactive one keeps the previous version alive in the instvar...

I just copied the existing implementation (without much motivation).
Bit for simplicity's sake we should simply instantiate every time the proper ui manager, that would simplify these ugly methods quite a bit.


On 2012-03-21, at 04:12, Igor Stasenko wrote:

> the logic there was to set a non-interactive ui manager
> for headless sessions only , and then restore back a previous one
> (whatever it is), once session is changed back to headfull.
> if its uiManager is nil, it should reset the default manager,
> if i remember correctly, then UImanager itself will take care
> instantiating default one.
> On 21 March 2012 04:35, Guillermo Polito <guillermopolito at gmail.com> wrote:
>> Hi,
>> I was doing some hacking, and playing with NonInteractiveUIManager.  And it
>> puzzled me that I realized that it has an inst var uiManager that seems to
>> refer to an uiManager it's replacing.
>> But my UIManager is not replacing anyone, it's my default and unique
>> UIManager and this var points to nil :S!
>> So the code below does not work...
>> onSnapshot: resuming
>>     "The resuming argument is true when image boots from disk,
>>     and false, if user just did an image snapshot."
>>     resuming ifTrue: [
>>         Smalltalk isHeadless ifFalse: [
>>             "restore old, or nil, so it will be set in #default "
>>                 uiManager beDefault.
>>                 UIManager default onSnapshot: resuming.
>>             ^ self ].
>>         Smalltalk isInteractive ifTrue: [
>>             "use a headless but interactive manager"
>>             ^ self headlessManager onSnapshot: resuming ]].
>>     " this flag set to true only if we are saving a snapshot before quitting
>> "
>>     doNotQuitOnRestart ifTrue: [
>>         Smalltalk snapshot: false andQuit: true].
>> I made it work in my image adding within the controversial lines:
>> uiManager ifNotNil: [
>>     uiManager beDefault.
>>     UIManager default onSnapshot: resuming.
>> ]
>> But it really looks like a hack because that inst var is ment to do
>> something else...
>> Is it asking me for a refactor?  Or am I using this stuff in the wrong way?
>> Camillo, Igor? :P
>> Guille
> -- 
> Best regards,
> Igor Stasenko.

More information about the Pharo-dev mailing list