Revision d6d9d5b...

Go back to digest for 9th February 2014

Bug Fixes in Office

Dmitry Kazakov committed changes in [calligra] /:

The weirdest patch ever

There is a bug in Qt/X11 which prevents the QPainter::drawText() call
be used in any non-gui thread, even when
QFontDatabase::supportsThreadedFontRendering() returns true. It seems
like some function in the font rendering routine eats the X11 replies
which are awaited by the GUI thread, effectively making the GUI thread
to hang up. The hangup happens in xcb_wait_for_reply().

This dirty workaround makes the text brush be initialized in the
GUI thread, saved to a global singleton and then fetched by the
threaded code in the paintop. Yes, that is weird, but this is the
best thing we can do right now :(

File Changes

Added 1 files
  • krita/ui/kis_threaded_text_rendering_workaround.h
Modified 11 files
  •   krita/image/brushengine/kis_paintop_factory.cpp
  •   krita/image/brushengine/kis_paintop_factory.h
  •   krita/image/brushengine/kis_paintop_registry.cc
  •   krita/image/brushengine/kis_paintop_registry.h
  •   krita/ui/tool/kis_resources_snapshot.cpp
  •   krita/plugins/paintops/libbrush/kis_text_brush.cpp
  •   krita/plugins/paintops/libpaintop/kis_brush_based_paintop.cpp
  •   krita/plugins/paintops/libpaintop/kis_brush_based_paintop.h
  •   krita/plugins/paintops/libpaintop/kis_brush_option.cpp
  •   krita/plugins/paintops/libpaintop/kis_brush_option.h
  •   krita/plugins/paintops/libpaintop/kis_simple_paintop_factory.h
12 files changed in total