mirror of
https://github.com/aseprite/aseprite.git
synced 2025-01-29 21:33:12 +00:00
Add option to keep the timeline selection when we draw on the canvas
This commit is contained in:
parent
2df3cd8a80
commit
8d6f889e0e
@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<!-- Aseprite -->
|
||||
<!-- Copyright (C) 2018-2020 Igara Studio S.A. -->
|
||||
<!-- Copyright (C) 2018-2021 Igara Studio S.A. -->
|
||||
<!-- Copyright (C) 2014-2018 David Capello -->
|
||||
<preferences>
|
||||
|
||||
@ -171,6 +171,9 @@
|
||||
zoom levels -->
|
||||
<option id="auto_fit" type="bool" default="false" />
|
||||
</section>
|
||||
<section id="timeline">
|
||||
<option id="keep_selection" type="bool" default="false" />
|
||||
</section>
|
||||
<section id="cursor">
|
||||
<option id="use_native_cursor" type="bool" default="false" />
|
||||
<option id="cursor_scale" type="int" default="1" />
|
||||
|
@ -1170,6 +1170,11 @@ rewind_on_stop_tooltip = <<<END
|
||||
The 'Stop' button should rewind the animation
|
||||
where it was started.
|
||||
END
|
||||
keep_timeline_selection = Keep selection
|
||||
keep_timeline_selection_tooltip = <<<END
|
||||
Keep the selected range of layers/frames/cels
|
||||
when we edit the canvas.
|
||||
END
|
||||
default_first_frame = Default First Frame:
|
||||
ui_mouse_cursor = UI Mouse Cursor
|
||||
native_cursor = Use native mouse cursors
|
||||
|
@ -1,5 +1,5 @@
|
||||
<!-- Aseprite -->
|
||||
<!-- Copyright (C) 2018-2020 Igara Studio S.A. -->
|
||||
<!-- Copyright (C) 2018-2021 Igara Studio S.A. -->
|
||||
<!-- Copyright (C) 2001-2018 David Capello -->
|
||||
<gui>
|
||||
<window id="options" text="@.title">
|
||||
@ -258,6 +258,8 @@
|
||||
pref="general.autoshow_timeline" />
|
||||
<check text="@.rewind_on_stop" id="rewind_on_stop" tooltip="@.rewind_on_stop_tooltip"
|
||||
pref="general.rewind_on_stop" />
|
||||
<check text="@.keep_timeline_selection" id="keep_selection" tooltip="@.keep_timeline_selection_tooltip"
|
||||
pref="timeline.keep_selection" />
|
||||
<hbox>
|
||||
<label text="@.default_first_frame" />
|
||||
<expr id="first_frame" />
|
||||
|
@ -320,18 +320,24 @@ void Timeline::updateUsingEditor(Editor* editor)
|
||||
|
||||
m_aniControls.updateUsingEditor(editor);
|
||||
|
||||
DocRange oldRange;
|
||||
if (editor != m_editor) {
|
||||
// Save active m_tagFocusBand into the old focused editor
|
||||
if (m_editor)
|
||||
m_editor->setTagFocusBand(m_tagFocusBand);
|
||||
m_tagFocusBand = -1;
|
||||
}
|
||||
else {
|
||||
oldRange = m_range;
|
||||
}
|
||||
|
||||
detachDocument();
|
||||
|
||||
if (m_range.enabled() &&
|
||||
m_rangeLocks == 0) {
|
||||
m_range.clearRange();
|
||||
if (Preferences::instance().timeline.keepSelection())
|
||||
m_range = oldRange;
|
||||
else {
|
||||
// The range is reset in detachDocument()
|
||||
ASSERT(!m_range.enabled());
|
||||
}
|
||||
|
||||
// We always update the editor. In this way the timeline keeps in
|
||||
@ -3991,8 +3997,10 @@ void Timeline::onNewInputPriority(InputChainElement* element,
|
||||
return;
|
||||
|
||||
if (element != this && m_rangeLocks == 0) {
|
||||
m_range.clearRange();
|
||||
invalidate();
|
||||
if (!Preferences::instance().timeline.keepSelection()) {
|
||||
m_range.clearRange();
|
||||
invalidate();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user