Skip to content

Commit

Permalink
Merge branch 'HunterNN-master'
Browse files Browse the repository at this point in the history
  • Loading branch information
dacap committed Mar 26, 2016
2 parents 85418c1 + 799803d commit b62c1e1
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 11 deletions.
29 changes: 19 additions & 10 deletions src/app/ui/editor/drawing_state.cpp
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2001-2015 David Capello
// Copyright (C) 2001-2016 David Capello
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
Expand Down Expand Up @@ -116,15 +116,9 @@ bool DrawingState::onMouseDown(Editor* editor, MouseMessage* msg)
// Notify the mouse button down to the tool loop manager.
m_toolLoopManager->pressButton(pointer_from_msg(editor, msg));

// Cancel drawing loop
if (m_toolLoopManager->isCanceled()) {
destroyLoop(editor);

// Change to standby state
editor->backToPreviousState();
editor->releaseMouse();
}

// The user might have canceled by the tool loop clicking with the
// secondary mouse button.
destroyLoopIfCanceled(editor);
return true;
}

Expand Down Expand Up @@ -215,6 +209,9 @@ bool DrawingState::onKeyDown(Editor* editor, KeyMessage* msg)
bool DrawingState::onKeyUp(Editor* editor, KeyMessage* msg)
{
m_toolLoopManager->releaseKey(msg->scancode());

// The user might have canceled the tool loop pressing the 'Esc' key.
destroyLoopIfCanceled(editor);
return true;
}

Expand All @@ -231,6 +228,18 @@ void DrawingState::onExposeSpritePixels(const gfx::Region& rgn)
m_toolLoop->validateDstImage(rgn);
}

void DrawingState::destroyLoopIfCanceled(Editor* editor)
{
// Cancel drawing loop
if (m_toolLoopManager->isCanceled()) {
destroyLoop(editor);

// Change to standby state
editor->backToPreviousState();
editor->releaseMouse();
}
}

void DrawingState::destroyLoop(Editor* editor)
{
if (editor) {
Expand Down
3 changes: 2 additions & 1 deletion src/app/ui/editor/drawing_state.h
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
// Aseprite
// Copyright (C) 2001-2015 David Capello
// Copyright (C) 2001-2016 David Capello
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
Expand Down Expand Up @@ -37,6 +37,7 @@ namespace app {
void initToolLoop(Editor* editor, ui::MouseMessage* msg);

private:
void destroyLoopIfCanceled(Editor* editor);
void destroyLoop(Editor* editor);

// The tool-loop.
Expand Down

0 comments on commit b62c1e1

Please sign in to comment.