Browse Source

Trigger `component:drag` events in Layers. Closes #2528

pull/2578/head
Artur Arseniev 7 years ago
parent
commit
75b4783bd9
  1. 9
      src/navigator/view/ItemView.js
  2. 3
      src/navigator/view/ItemsView.js
  3. 6
      src/utils/Sorter.js

9
src/navigator/view/ItemView.js

@ -244,10 +244,15 @@ export default Backbone.View.extend({
* */
startSort(e) {
e.stopPropagation();
const sorter = this.sorter;
const { em, sorter } = this;
// Right or middel click
if (e.button && e.button !== 0) return;
sorter && sorter.startSort(e.target);
if (sorter) {
sorter.onStart = data => em.trigger('component:drag:start', data);
sorter.onMoveClb = data => em.trigger('component:drag', data);
sorter.startSort(e.target);
}
},
/**

3
src/navigator/view/ItemsView.js

@ -29,9 +29,10 @@ export default Backbone.View.extend({
containerSel: `.${this.className}`,
itemSel: `.${pfx}layer`,
ignoreViewChildren: 1,
onEndMove(created, sorter) {
onEndMove(created, sorter, data) {
const srcModel = sorter.getSourceModel();
em.setSelected(srcModel, { forceChange: 1 });
em.trigger('component:drag:end', data);
},
avoidSelectOnEnd: 1,
nested: 1,

6
src/utils/Sorter.js

@ -1015,7 +1015,7 @@ export default Backbone.View.extend({
* */
endMove(e) {
const src = this.eV;
const moved = [null];
const moved = [];
const docs = this.getDocuments();
const container = this.getContainerEl();
const onEndMove = this.onEndMove;
@ -1026,9 +1026,9 @@ export default Backbone.View.extend({
off(docs, 'keydown', this.rollback);
this.plh.style.display = 'none';
if (src && this.selectOnEnd) {
if (src) {
srcModel = this.getSourceModel();
if (srcModel && srcModel.set) {
if (this.selectOnEnd && srcModel && srcModel.set) {
srcModel.set('status', '');
srcModel.set('status', 'selected');
}

Loading…
Cancel
Save