Fixed selection when right-clicking in the 3D scene to show the context menu
This commit is contained in:
parent
07d1d44d8c
commit
dddea0db22
@ -2580,7 +2580,7 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
|
|||||||
m_selection.remove(m_hover_volume_id);
|
m_selection.remove(m_hover_volume_id);
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
m_selection.add(m_hover_volume_id, !ctrl_down);
|
m_selection.add(m_hover_volume_id, !ctrl_down, true);
|
||||||
m_mouse.drag.move_requires_threshold = !already_selected;
|
m_mouse.drag.move_requires_threshold = !already_selected;
|
||||||
if (already_selected)
|
if (already_selected)
|
||||||
m_mouse.set_move_start_threshold_position_2D_as_invalid();
|
m_mouse.set_move_start_threshold_position_2D_as_invalid();
|
||||||
|
@ -99,7 +99,7 @@ void Selection::set_model(Model* model)
|
|||||||
update_valid();
|
update_valid();
|
||||||
}
|
}
|
||||||
|
|
||||||
void Selection::add(unsigned int volume_idx, bool as_single_selection)
|
void Selection::add(unsigned int volume_idx, bool as_single_selection, bool check_for_already_contained)
|
||||||
{
|
{
|
||||||
if (!m_valid || ((unsigned int)m_volumes->size() <= volume_idx))
|
if (!m_valid || ((unsigned int)m_volumes->size() <= volume_idx))
|
||||||
return;
|
return;
|
||||||
@ -110,7 +110,7 @@ void Selection::add(unsigned int volume_idx, bool as_single_selection)
|
|||||||
return;
|
return;
|
||||||
|
|
||||||
bool keep_instance_mode = (m_mode == Instance) && !as_single_selection;
|
bool keep_instance_mode = (m_mode == Instance) && !as_single_selection;
|
||||||
bool already_contained = contains_volume(volume_idx);
|
bool already_contained = check_for_already_contained && contains_volume(volume_idx);
|
||||||
|
|
||||||
// resets the current list if needed
|
// resets the current list if needed
|
||||||
bool needs_reset = as_single_selection && !already_contained;
|
bool needs_reset = as_single_selection && !already_contained;
|
||||||
|
@ -210,7 +210,7 @@ public:
|
|||||||
EMode get_mode() const { return m_mode; }
|
EMode get_mode() const { return m_mode; }
|
||||||
void set_mode(EMode mode) { m_mode = mode; }
|
void set_mode(EMode mode) { m_mode = mode; }
|
||||||
|
|
||||||
void add(unsigned int volume_idx, bool as_single_selection = true);
|
void add(unsigned int volume_idx, bool as_single_selection = true, bool check_for_already_contained = false);
|
||||||
void remove(unsigned int volume_idx);
|
void remove(unsigned int volume_idx);
|
||||||
|
|
||||||
void add_object(unsigned int object_idx, bool as_single_selection = true);
|
void add_object(unsigned int object_idx, bool as_single_selection = true);
|
||||||
|
Loading…
Reference in New Issue
Block a user