mirror of
https://git.mirrors.martin98.com/https://github.com/prusa3d/PrusaSlicer.git
synced 2025-08-15 12:35:55 +08:00
Fix for SPE-1927 : Focus on Canvas entering
This commit is contained in:
parent
39a9b47b07
commit
e277e5915e
@ -3617,20 +3617,19 @@ void GLCanvas3D::on_mouse(wxMouseEvent& evt)
|
|||||||
|
|
||||||
//#if defined(__WXMSW__) || defined(__linux__)
|
//#if defined(__WXMSW__) || defined(__linux__)
|
||||||
// // On Windows and Linux needs focus in order to catch key events
|
// // On Windows and Linux needs focus in order to catch key events
|
||||||
// Set focus in order to remove it from object list
|
|
||||||
if (m_canvas != nullptr) {
|
if (m_canvas != nullptr) {
|
||||||
// Only set focus, if the top level window of this canvas is active
|
|
||||||
// and ObjectList has a focus
|
// Set focus in order to remove it from sidebar but not from TextControl (in ManipulationPanel f.e.)
|
||||||
auto p = dynamic_cast<wxWindow*>(evt.GetEventObject());
|
if (!m_canvas->HasFocus()) {
|
||||||
while (p->GetParent())
|
wxTopLevelWindow* tlw = find_toplevel_parent(m_canvas);
|
||||||
p = p->GetParent();
|
// Only set focus, if the top level window of this canvas is active
|
||||||
#ifdef __WIN32__
|
if (tlw->IsActive()) {
|
||||||
wxWindow* const obj_list = wxGetApp().obj_list()->GetMainWindow();
|
auto* text_ctrl = dynamic_cast<wxTextCtrl*>(tlw->FindFocus());
|
||||||
#else
|
if (text_ctrl == nullptr)
|
||||||
wxWindow* const obj_list = wxGetApp().obj_list();
|
m_canvas->SetFocus();
|
||||||
#endif
|
}
|
||||||
if (obj_list == p->FindFocus())
|
}
|
||||||
m_canvas->SetFocus();
|
|
||||||
m_mouse.position = pos.cast<double>();
|
m_mouse.position = pos.cast<double>();
|
||||||
m_tooltip_enabled = false;
|
m_tooltip_enabled = false;
|
||||||
// 1) forces a frame render to ensure that m_hover_volume_idxs is updated even when the user right clicks while
|
// 1) forces a frame render to ensure that m_hover_volume_idxs is updated even when the user right clicks while
|
||||||
|
Loading…
x
Reference in New Issue
Block a user