mirror of
https://github.com/aseprite/aseprite.git
synced 2024-12-27 21:19:18 +00:00
Add DrawingState::destroyLoopIfCanceled() to avoid duplicated code
This commit is contained in:
parent
fde573d8db
commit
799803d582
@ -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
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -216,15 +210,8 @@ bool DrawingState::onKeyUp(Editor* editor, KeyMessage* msg)
|
||||
{
|
||||
m_toolLoopManager->releaseKey(msg->scancode());
|
||||
|
||||
// Cancel drawing loop
|
||||
if (m_toolLoopManager->isCanceled()) {
|
||||
destroyLoop(editor);
|
||||
|
||||
// Change to standby state
|
||||
editor->backToPreviousState();
|
||||
editor->releaseMouse();
|
||||
}
|
||||
|
||||
// The user might have canceled the tool loop pressing the 'Esc' key.
|
||||
destroyLoopIfCanceled(editor);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -241,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) {
|
||||
|
@ -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
|
||||
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user