Le 27/4/15 14:41, Andrei Chis a écrit :
Hi,
In the glamour debugger that we use in moose we are now having the
following problem:
- the selection of a PluggableTextMorph is, quite randomly , changed
during styling.
If I revert the fix for issue 15240
<https://pharo.fogbugz.com/f/cases/15240> then it works ok.
Also if I change in SHTextStyler>>#styleInBackgroundProcess: from
sem waitTimeoutSeconds: 5.
view ifNotNil: [ view stylerStyledInBackground: text ]
to:
(sem waitTimeoutSeconds: 5) ifFalse: [
view ifNotNil: [ view stylerStyledInBackground: text ] ]
it works ok. In the second snippet we only do the styling if the
styler completed.
If I look at the senders of styleInBackgroundProcess: there is another
strange issue.
First PluggableTextMorph>>#setText: calls either style:
or styleInBackgroundProcess:, depending in the size of the text.
Then, PluggableTextMorph>>#setText:
calls PluggableTextMorph>>#setTextBasic:, which calls
PluggableTextMorph>>#hasUnacceptedEdits: which in turn
calls again styleInBackgroundProcess:.
So when you set the text if the size of the text is small Shout will
try to style the text with and without a background process. If you
call hasUnacceptedEdits:
manually when initializing the morph then three processes will be
started for doing the styling.
Ouch. And I imagine that it can be a mess after.
Thanks for looking at this issue.
Removing the calls to styleInBackgroundProcess: from
PluggableTextMorph>>#hasUnacceptedEdits: and
PluggableTextMorph>>#basicHasUnacceptedEdits:.
also solves the problem with the changing selection.
Cheers,
Andrei