Skip to content
Commit 69e2e9e1 authored by Dmitry Kazakov's avatar Dmitry Kazakov
Browse files

Fix a crash when doing Merge Down on shape layers

The patch fixes two problems:

1) KisShapeLayerCanvas::repaint() should be called from the context
   of the sheduler's thread when the repaint is initiated from the
   scheduler. Otherwise, it might conflict even with copy-ctor
   of KisShapeLayer, which calls addShape(), which causes a concurrent
   update to be issued.

2) QTextLayout's in KoSvgTextShape should be accessed exactly from the
   same thread they were created in. Internally, they use static text
   items, which contain FreeType glyphs, which are unique for each(!)
   thread (Qt uses QThreadStorage for managing FreeType library).

NOTE:

There is still a big problem that vector tools may access the shapes
while the scheduler is working on them (vector tools are not ported to
strokes yet). This problem should be addressed of course, but not in
this patch.

BUG:388699
parent 2c595ab7
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment