mirror of https://github.com/aseprite/aseprite.git
				
				
				
			Merge remote-tracking branch 'origin/dev' into dev
This commit is contained in:
		
						commit
						3935b10467
					
				| 
						 | 
				
			
			@ -190,7 +190,20 @@ void MiniEditorWindow::onClose(ui::CloseEvent& ev)
 | 
			
		|||
 | 
			
		||||
void MiniEditorWindow::onPlayClicked()
 | 
			
		||||
{
 | 
			
		||||
  resetTimer();
 | 
			
		||||
  if (m_playButton->isPlaying()) {
 | 
			
		||||
    Editor* miniEditor = (m_docView ? m_docView->getEditor(): NULL);
 | 
			
		||||
    if (miniEditor && miniEditor->getDocument() != NULL)
 | 
			
		||||
      m_nextFrameTime = miniEditor->getSprite()->getFrameDuration(miniEditor->getFrame());
 | 
			
		||||
    else
 | 
			
		||||
      m_nextFrameTime = -1;
 | 
			
		||||
 | 
			
		||||
    m_curFrameTick = ji_clock;
 | 
			
		||||
 | 
			
		||||
    m_playTimer.start();
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    m_playTimer.stop();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MiniEditorWindow::updateUsingEditor(Editor* editor)
 | 
			
		||||
| 
						 | 
				
			
			@ -234,22 +247,6 @@ void MiniEditorWindow::hideWindow()
 | 
			
		|||
    closeWindow(NULL);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MiniEditorWindow::resetTimer()
 | 
			
		||||
{
 | 
			
		||||
  if (m_playButton->isPlaying()) {
 | 
			
		||||
    m_playTimer.start();
 | 
			
		||||
 | 
			
		||||
    Editor* miniEditor = (m_docView ? m_docView->getEditor(): NULL);
 | 
			
		||||
    if (miniEditor && miniEditor->getDocument() != NULL)
 | 
			
		||||
      m_nextFrameTime = miniEditor->getSprite()->getFrameDuration(miniEditor->getFrame());
 | 
			
		||||
    else
 | 
			
		||||
      m_nextFrameTime = -1;
 | 
			
		||||
  }
 | 
			
		||||
  else {
 | 
			
		||||
    m_playTimer.stop();
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MiniEditorWindow::onPlaybackTick()
 | 
			
		||||
{
 | 
			
		||||
  Editor* miniEditor = (m_docView ? m_docView->getEditor(): NULL);
 | 
			
		||||
| 
						 | 
				
			
			@ -257,15 +254,18 @@ void MiniEditorWindow::onPlaybackTick()
 | 
			
		|||
    return;
 | 
			
		||||
 | 
			
		||||
  if (m_nextFrameTime >= 0) {
 | 
			
		||||
    m_nextFrameTime -= 10;      // onPlaybackTick()
 | 
			
		||||
    if (m_nextFrameTime <= 0) {
 | 
			
		||||
    m_nextFrameTime -= (ji_clock - m_curFrameTick);
 | 
			
		||||
 | 
			
		||||
    while (m_nextFrameTime <= 0) {
 | 
			
		||||
      FrameNumber frame = miniEditor->getFrame().next();
 | 
			
		||||
      if (frame > miniEditor->getSprite()->getLastFrame())
 | 
			
		||||
        frame = FrameNumber(0);
 | 
			
		||||
      miniEditor->setFrame(frame);
 | 
			
		||||
 | 
			
		||||
      m_nextFrameTime = miniEditor->getSprite()->getFrameDuration(miniEditor->getFrame());
 | 
			
		||||
      m_nextFrameTime += miniEditor->getSprite()->getFrameDuration(miniEditor->getFrame());
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    m_curFrameTick = ji_clock;
 | 
			
		||||
  }
 | 
			
		||||
  invalidate();
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -45,7 +45,6 @@ namespace app {
 | 
			
		|||
    void onPlayClicked();
 | 
			
		||||
    void onPlaybackTick();
 | 
			
		||||
    void hideWindow();
 | 
			
		||||
    void resetTimer();
 | 
			
		||||
 | 
			
		||||
    bool m_isEnabled;
 | 
			
		||||
    DocumentView* m_docView;
 | 
			
		||||
| 
						 | 
				
			
			@ -55,6 +54,7 @@ namespace app {
 | 
			
		|||
    // Number of milliseconds to go to the next frame if m_playTimer
 | 
			
		||||
    // is activated.
 | 
			
		||||
    int m_nextFrameTime;
 | 
			
		||||
    int m_curFrameTick;
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
} // namespace app
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue