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

Reply via email to