Fix reselect in flattening
This commit is contained in:
parent
9a9c8213cb
commit
553102c4ee
2 changed files with 23 additions and 14 deletions
|
@ -23,23 +23,32 @@ bool GLGizmoFlatten::on_mouse(const wxMouseEvent &mouse_event)
|
||||||
if (mouse_event.Moving()) {
|
if (mouse_event.Moving()) {
|
||||||
// only for sure
|
// only for sure
|
||||||
m_mouse_left_down = false;
|
m_mouse_left_down = false;
|
||||||
|
|
||||||
if (m_hover_id != -1) m_parent.set_as_dirty();
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (mouse_event.LeftDown() && m_hover_id != -1) {
|
if (mouse_event.LeftDown()) {
|
||||||
Selection &selection = m_parent.get_selection();
|
if (m_hover_id != -1) {
|
||||||
if (selection.is_single_full_instance()) {
|
m_mouse_left_down = true;
|
||||||
// Rotate the object so the normal points downward:
|
Selection &selection = m_parent.get_selection();
|
||||||
selection.flattening_rotate(m_planes[m_hover_id].normal);
|
if (selection.is_single_full_instance()) {
|
||||||
m_parent.do_rotate(L("Gizmo-Place on Face"));
|
// Rotate the object so the normal points downward:
|
||||||
|
selection.flattening_rotate(m_planes[m_hover_id].normal);
|
||||||
|
m_parent.do_rotate(L("Gizmo-Place on Face"));
|
||||||
|
}
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
m_mouse_left_down = true;
|
|
||||||
return true;
|
// fix: prevent restart gizmo when reselect object
|
||||||
} else if (m_mouse_left_down && mouse_event.LeftUp()) {
|
// take responsibility for left up
|
||||||
// responsible for mouse left up
|
if (m_parent.get_first_hover_volume_idx() >= 0) m_mouse_left_down = true;
|
||||||
|
|
||||||
|
} else if (mouse_event.LeftUp()) {
|
||||||
|
if (m_mouse_left_down) {
|
||||||
|
// responsible for mouse left up after selecting plane
|
||||||
|
m_mouse_left_down = false;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
} else if (mouse_event.Leaving()) {
|
||||||
m_mouse_left_down = false;
|
m_mouse_left_down = false;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,7 +33,7 @@ private:
|
||||||
Vec3d m_first_instance_mirror;
|
Vec3d m_first_instance_mirror;
|
||||||
|
|
||||||
std::vector<PlaneData> m_planes;
|
std::vector<PlaneData> m_planes;
|
||||||
bool m_mouse_left_down = false;
|
bool m_mouse_left_down = false; // for detection left_up of this gizmo
|
||||||
bool m_planes_valid = false;
|
bool m_planes_valid = false;
|
||||||
const ModelObject* m_old_model_object = nullptr;
|
const ModelObject* m_old_model_object = nullptr;
|
||||||
std::vector<const Transform3d*> instances_matrices;
|
std::vector<const Transform3d*> instances_matrices;
|
||||||
|
|
Loading…
Add table
Reference in a new issue