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

Fixed mouse/modifies for tools again

Ok, this path fixes several things:

1) It removes almost all uses of m_localTool technique (except
path-based tools). This caused various problems with processing
of the events by two independent KisTool-based tools. Now it is gone,
and creation of the Options widget is done by a separate class:
KisSelectionToolConfigWidgetHelper. This class will probably disappear
as well, when the figure-based tools are united in a single class.
KisToolSelectBase now uses the helper as well and non-figure-based
classes inherit it.

2) It fixes processing of mouse/keyboard events in KisTool/KisToolPaint.
Well, *we really need to write some interaction-based system for the events*.
The state machine of the interactions must be written separately. I've fixed
this at least three times in the last two years. Such code does not live
longer than half a year. Another change will break them again.

Ok, I must admit that I was wrong suggesting using SECONDARY_HOVER_MODE for
showing the cursor of the color picker. If we did so we would have to introduce
even more modes like MIRROR_HOVER, PAN_HOVER. In this case it would be almost
impossible to deal with these states manually using 'if's. So what I did was
introducing KisToolPaint::specialHoverModeActive(), which is checked by the
KisToolFreehand. This is a hack, but it will go when we do the tools in a right
way. Currently, any change in this area will demand rewriting this part anyway.

BUG:291637
parent d406fb72
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