app: make the airbrush tool thread-safe w.r.t. paint thread

Desktop / GNOME / GIMP - Ell [yahoo.com] - 16 April 2018 13:56 EDT

GimpAirbrush currently performs painting and flushes the image on its own during the airbrush timeout. This is unsafe w.r.t. the paint thread, since the timeout is run on the main thread, while paint commands should run on the paint thread.

Add a "timeout" signal to GimpAirbrush, and simply emit this signal during the airbrush timeout, rather than actually painting.

Connect to this signal in GimpAirbrushTool, and use gimppaintool-paint to perform the actual painting, in a thread-safe manner (see the previous commit.)

ddfc7715cb app: make the airbrush tool thread-safe w.r.t. paint thread
app/paint/gimpairbrush.c | 37 ++++++++++++++++++++-----------------
app/paint/gimpairbrush.h | 11 +++++------
app/tools/gimpairbrushtool.c | 33 ++++++++++++++++++++++++++++++++-
3 files changed, 57 insertions(+), 24 deletions(-)

Upstream: git.gnome.org


  • Share