mirror of
https://github.com/aseprite/aseprite.git
synced 2025-02-06 03:39:51 +00:00
Enable square aspect if Shift modifier is pressed when we start a TwoPointsController
This commit is contained in:
parent
b9e362ac5c
commit
3dff25246b
@ -31,7 +31,7 @@ namespace app {
|
||||
virtual bool isFreehand() { return false; }
|
||||
virtual bool isOnePoint() { return false; }
|
||||
|
||||
virtual void prepareController() { }
|
||||
virtual void prepareController(ui::KeyModifiers modifiers) { }
|
||||
|
||||
// Called when the user presses or releases a key. Returns true
|
||||
// if the key is used (so a new mouse point is generated).
|
||||
|
@ -59,9 +59,9 @@ public:
|
||||
// Controls clicks for tools like line
|
||||
class TwoPointsController : public Controller {
|
||||
public:
|
||||
void prepareController() override {
|
||||
m_squareAspect = false;
|
||||
m_fromCenter = false;
|
||||
void prepareController(ui::KeyModifiers modifiers) override {
|
||||
m_squareAspect = (modifiers & ui::kKeyShiftModifier) ? true: false;
|
||||
m_fromCenter = (modifiers & ui::kKeyCtrlModifier) ? true: false;
|
||||
}
|
||||
|
||||
void pressButton(Points& points, const Point& point) override {
|
||||
|
@ -46,7 +46,8 @@ bool ToolLoopManager::isCanceled() const
|
||||
return m_toolLoop->isCanceled();
|
||||
}
|
||||
|
||||
void ToolLoopManager::prepareLoop(const Pointer& pointer)
|
||||
void ToolLoopManager::prepareLoop(const Pointer& pointer,
|
||||
ui::KeyModifiers modifiers)
|
||||
{
|
||||
// Start with no points at all
|
||||
m_points.clear();
|
||||
@ -54,7 +55,7 @@ void ToolLoopManager::prepareLoop(const Pointer& pointer)
|
||||
// Prepare the ink
|
||||
m_toolLoop->getInk()->prepareInk(m_toolLoop);
|
||||
m_toolLoop->getIntertwine()->prepareIntertwine();
|
||||
m_toolLoop->getController()->prepareController();
|
||||
m_toolLoop->getController()->prepareController(modifiers);
|
||||
m_toolLoop->getPointShape()->preparePointShape(m_toolLoop);
|
||||
|
||||
// Prepare preview image (the destination image will be our preview
|
||||
|
@ -69,7 +69,8 @@ namespace app {
|
||||
|
||||
// Should be called when the user start a tool-trace (pressing the
|
||||
// left or right button for first time in the editor).
|
||||
void prepareLoop(const Pointer& pointer);
|
||||
void prepareLoop(const Pointer& pointer,
|
||||
ui::KeyModifiers modifiers);
|
||||
|
||||
// Called when the loop is over.
|
||||
void releaseLoop(const Pointer& pointer);
|
||||
|
@ -185,7 +185,7 @@ void BrushPreview::show(const gfx::Point& screenPos)
|
||||
if (loop) {
|
||||
loop->getInk()->prepareInk(loop);
|
||||
loop->getIntertwine()->prepareIntertwine();
|
||||
loop->getController()->prepareController();
|
||||
loop->getController()->prepareController(ui::kKeyNoneModifier);
|
||||
loop->getPointShape()->preparePointShape(loop);
|
||||
loop->getPointShape()->transformPoint(
|
||||
loop, -origBrushBounds.x, -origBrushBounds.y);
|
||||
|
@ -68,7 +68,7 @@ void DrawingState::initToolLoop(Editor* editor, MouseMessage* msg)
|
||||
// first mouse pressed/point shape if drawn.
|
||||
HideBrushPreview hide(editor->brushPreview());
|
||||
|
||||
m_toolLoopManager->prepareLoop(pointer_from_msg(msg));
|
||||
m_toolLoopManager->prepareLoop(pointer_from_msg(msg), msg->keyModifiers());
|
||||
m_toolLoopManager->pressButton(pointer_from_msg(msg));
|
||||
|
||||
editor->captureMouse();
|
||||
|
Loading…
x
Reference in New Issue
Block a user