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.

Removing the calls to styleInBackgroundProcess: from
PluggableTextMorph>>#hasUnacceptedEdits:  and
PluggableTextMorph>>#basicHasUnacceptedEdits:.
also solves the problem with the changing selection.

Cheers,
Andrei

Reply via email to