-avoid allowing selection of canvasitems inside a viewport, fixes #1383
This commit is contained in:
parent
35a28f3442
commit
e997c0d242
1 changed files with 59 additions and 0 deletions
|
@ -603,6 +603,9 @@ bool CanvasItemEditor::_select(CanvasItem *item, Point2 p_click_pos, bool p_appe
|
||||||
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
||||||
if (!se)
|
if (!se)
|
||||||
continue;
|
continue;
|
||||||
|
@ -643,6 +646,9 @@ void CanvasItemEditor::_key_move(const Vector2& p_dir, bool p_snap, KeyMoveMODE
|
||||||
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
||||||
if (!se)
|
if (!se)
|
||||||
continue;
|
continue;
|
||||||
|
@ -702,6 +708,9 @@ Point2 CanvasItemEditor::_find_topleftmost_point() {
|
||||||
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -731,6 +740,9 @@ int CanvasItemEditor::get_item_count() {
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
ic++;
|
ic++;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -749,6 +761,8 @@ CanvasItem *CanvasItemEditor::get_single_item() {
|
||||||
CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
|
CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
if (single_item)
|
if (single_item)
|
||||||
return NULL; //morethan one
|
return NULL; //morethan one
|
||||||
|
@ -1102,6 +1116,9 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
|
||||||
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
|
||||||
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
||||||
if (!se)
|
if (!se)
|
||||||
|
@ -1194,6 +1211,9 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
|
||||||
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
||||||
if (!se)
|
if (!se)
|
||||||
continue;
|
continue;
|
||||||
|
@ -1400,6 +1420,9 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
|
||||||
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
||||||
if (!se)
|
if (!se)
|
||||||
continue;
|
continue;
|
||||||
|
@ -1507,6 +1530,9 @@ void CanvasItemEditor::_viewport_input_event(const InputEvent& p_event) {
|
||||||
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
CanvasItem *canvas_item = E->get()->cast_to<CanvasItem>();
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
||||||
if (!se)
|
if (!se)
|
||||||
continue;
|
continue;
|
||||||
|
@ -1881,6 +1907,8 @@ void CanvasItemEditor::_viewport_draw() {
|
||||||
CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
|
CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
CanvasItemEditorSelectedItem *se=editor_selection->get_node_editor_data<CanvasItemEditorSelectedItem>(canvas_item);
|
||||||
if (!se)
|
if (!se)
|
||||||
continue;
|
continue;
|
||||||
|
@ -2104,6 +2132,9 @@ void CanvasItemEditor::_notification(int p_what) {
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
if (canvas_item->cast_to<Control>())
|
if (canvas_item->cast_to<Control>())
|
||||||
has_control=true;
|
has_control=true;
|
||||||
else
|
else
|
||||||
|
@ -2509,6 +2540,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
canvas_item->set_meta("_edit_lock_",true);
|
canvas_item->set_meta("_edit_lock_",true);
|
||||||
emit_signal("item_lock_status_changed");
|
emit_signal("item_lock_status_changed");
|
||||||
}
|
}
|
||||||
|
@ -2524,6 +2558,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
|
||||||
canvas_item->set_meta("_edit_lock_",Variant());
|
canvas_item->set_meta("_edit_lock_",Variant());
|
||||||
emit_signal("item_lock_status_changed");
|
emit_signal("item_lock_status_changed");
|
||||||
|
@ -2542,6 +2579,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
canvas_item->set_meta("_edit_group_",true);
|
canvas_item->set_meta("_edit_group_",true);
|
||||||
emit_signal("item_group_status_changed");
|
emit_signal("item_group_status_changed");
|
||||||
}
|
}
|
||||||
|
@ -2557,6 +2597,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
canvas_item->set_meta("_edit_group_",Variant());
|
canvas_item->set_meta("_edit_group_",Variant());
|
||||||
emit_signal("item_group_status_changed");
|
emit_signal("item_group_status_changed");
|
||||||
}
|
}
|
||||||
|
@ -2575,6 +2618,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
|
||||||
Control *c = canvas_item->cast_to<Control>();
|
Control *c = canvas_item->cast_to<Control>();
|
||||||
if (!c)
|
if (!c)
|
||||||
|
@ -2693,6 +2739,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
if (canvas_item->cast_to<Node2D>()) {
|
if (canvas_item->cast_to<Node2D>()) {
|
||||||
Node2D *n2d = canvas_item->cast_to<Node2D>();
|
Node2D *n2d = canvas_item->cast_to<Node2D>();
|
||||||
|
|
||||||
|
@ -2803,6 +2852,8 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
|
||||||
if (canvas_item->cast_to<Node2D>()) {
|
if (canvas_item->cast_to<Node2D>()) {
|
||||||
|
@ -2853,6 +2904,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
if (canvas_item->cast_to<Node2D>()) {
|
if (canvas_item->cast_to<Node2D>()) {
|
||||||
Node2D *n2d = canvas_item->cast_to<Node2D>();
|
Node2D *n2d = canvas_item->cast_to<Node2D>();
|
||||||
|
|
||||||
|
@ -2887,6 +2941,9 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
||||||
for(Map<Node*,Object*>::Element *E=selection.front();E;E=E->next()) {
|
for(Map<Node*,Object*>::Element *E=selection.front();E;E=E->next()) {
|
||||||
CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
|
CanvasItem *canvas_item = E->key()->cast_to<CanvasItem>();
|
||||||
if (!canvas_item) continue;
|
if (!canvas_item) continue;
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
|
|
||||||
// counting invisible items, for now
|
// counting invisible items, for now
|
||||||
//if (!canvas_item->is_visible()) continue;
|
//if (!canvas_item->is_visible()) continue;
|
||||||
|
@ -2979,6 +3036,8 @@ void CanvasItemEditor::_popup_callback(int p_op) {
|
||||||
if (!canvas_item || !canvas_item->is_visible())
|
if (!canvas_item || !canvas_item->is_visible())
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
if (canvas_item->get_viewport()!=EditorNode::get_singleton()->get_scene_root())
|
||||||
|
continue;
|
||||||
|
|
||||||
canvas_item->set_meta("_edit_ik_",true);
|
canvas_item->set_meta("_edit_ik_",true);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue