[aseprite] 48/250: Fix some scrolling issues in Timeline when clicking in a new cel

Tobias Hansen thansen at moszumanska.debian.org
Sun Dec 20 15:27:10 UTC 2015


This is an automated email from the git hooks/post-receive script.

thansen pushed a commit to branch master
in repository aseprite.

commit 581fbb663226eedbc80621e6940347ac7ff9d26a
Author: David Capello <davidcapello at gmail.com>
Date:   Thu Sep 17 16:39:55 2015 -0300

    Fix some scrolling issues in Timeline when clicking in a new cel
---
 src/app/ui/timeline.cpp | 10 ++++++++++
 src/app/ui/timeline.h   |  6 +++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/src/app/ui/timeline.cpp b/src/app/ui/timeline.cpp
index a2d71d1..bfe4924 100644
--- a/src/app/ui/timeline.cpp
+++ b/src/app/ui/timeline.cpp
@@ -41,6 +41,7 @@
 #include "app/util/clipboard.h"
 #include "base/convert_to.h"
 #include "base/memory.h"
+#include "base/scoped_value.h"
 #include "doc/doc.h"
 #include "doc/document_event.h"
 #include "doc/frame_tag.h"
@@ -131,6 +132,7 @@ Timeline::Timeline()
   , m_clipboard_timer(100, this)
   , m_offset_count(0)
   , m_scroll(false)
+  , m_fromTimeline(false)
 {
   m_ctxConn = m_context->AfterCommandExecution.connect(
     &Timeline::onAfterCommandExecution, this);
@@ -360,6 +362,7 @@ bool Timeline::onProcessMessage(Message* msg)
           break;
         }
         case PART_LAYER_TEXT: {
+          base::ScopedValue<bool> lock(m_fromTimeline, true, false);
           LayerIndex old_layer = getLayerIndex(m_layer);
           bool selectLayer = (mouseMsg->left() || !isLayerActive(m_clk.layer));
 
@@ -387,6 +390,7 @@ bool Timeline::onProcessMessage(Message* msg)
         case PART_LAYER_CONTINUOUS_ICON:
           break;
         case PART_CEL: {
+          base::ScopedValue<bool> lock(m_fromTimeline, true, false);
           LayerIndex old_layer = getLayerIndex(m_layer);
           bool selectCel = (mouseMsg->left()
             || !isLayerActive(m_clk.layer)
@@ -1113,6 +1117,9 @@ void Timeline::onStateChanged(Editor* editor)
 
 void Timeline::onAfterFrameChanged(Editor* editor)
 {
+  if (m_fromTimeline)
+    return;
+
   setFrame(editor->frame());
 
   if (!hasCapture())
@@ -1124,6 +1131,9 @@ void Timeline::onAfterFrameChanged(Editor* editor)
 
 void Timeline::onAfterLayerChanged(Editor* editor)
 {
+  if (m_fromTimeline)
+    return;
+
   setLayer(editor->layer());
 
   if (!hasCapture())
diff --git a/src/app/ui/timeline.h b/src/app/ui/timeline.h
index 537f4cf..afbe840 100644
--- a/src/app/ui/timeline.h
+++ b/src/app/ui/timeline.h
@@ -84,9 +84,6 @@ namespace app {
     Layer* getLayer() { return m_layer; }
     frame_t getFrame() { return m_frame; }
 
-    void setLayer(Layer* layer);
-    void setFrame(frame_t frame);
-
     State getState() const { return m_state; }
     bool isMovingCel() const;
 
@@ -185,6 +182,8 @@ namespace app {
       int xpos, ypos;
     };
 
+    void setLayer(Layer* layer);
+    void setFrame(frame_t frame);
     bool allLayersVisible();
     bool allLayersInvisible();
     bool allLayersLocked();
@@ -287,6 +286,7 @@ namespace app {
 
     bool m_scroll;   // True if the drag-and-drop operation is a scroll operation.
     bool m_copy;     // True if the drag-and-drop operation is a copy.
+    bool m_fromTimeline;
 
     AniControls m_aniControls;
 

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-games/aseprite.git



More information about the Pkg-games-commits mailing list