GPv3: Send updates after drop operation #111519
|
@ -19,6 +19,8 @@
|
|||
|
||||
#include "ED_undo.hh"
|
||||
|
||||
#include "WM_api.hh"
|
||||
|
||||
#include <fmt/format.h>
|
||||
|
||||
namespace blender::ui::greasepencil {
|
||||
|
@ -74,7 +76,7 @@ class LayerNodeDropTarget : public TreeViewItemDropTarget {
|
|||
return "";
|
||||
}
|
||||
|
||||
bool on_drop(bContext * /*C*/, const DragInfo &drag_info) const override
|
||||
bool on_drop(bContext *C, const DragInfo &drag_info) const override
|
||||
{
|
||||
const wmDragGreasePencilLayer *drag_grease_pencil =
|
||||
static_cast<const wmDragGreasePencilLayer *>(drag_info.drag_data.poin);
|
||||
|
@ -102,21 +104,28 @@ class LayerNodeDropTarget : public TreeViewItemDropTarget {
|
|||
LayerGroup &drop_group = drop_tree_node_.as_group();
|
||||
drag_parent.unlink_node(&drag_layer.as_node());
|
||||
drop_group.add_layer(&drag_layer);
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
case DropLocation::Before:
|
||||
case DropLocation::Before: {
|
||||
drag_parent.unlink_node(&drag_layer.as_node());
|
||||
/* Draw order is inverted, so inserting before means inserting below. */
|
||||
drop_parent_group->add_layer_after(&drag_layer, &drop_tree_node_);
|
||||
return true;
|
||||
case DropLocation::After:
|
||||
break;
|
||||
}
|
||||
case DropLocation::After: {
|
||||
drag_parent.unlink_node(&drag_layer.as_node());
|
||||
/* Draw order is inverted, so inserting after means inserting above. */
|
||||
drop_parent_group->add_layer_before(&drag_layer, &drop_tree_node_);
|
||||
return true;
|
||||
break;
|
||||
}
|
||||
default: {
|
||||
BLI_assert_unreachable();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
WM_event_add_notifier(C, NC_GPENCIL | NA_EDITED, nullptr);
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in New Issue