When activating the PrusaSlicer main window, focus the Plater 3D view
or G-code preview if it is marked as Active. Fixes 3Dconnexion not work directly after importing stl (focus problem ?) #5141 Keep your fingers crossed that it will not break something else.
This commit is contained in:
parent
aa8f97fce2
commit
20f5b7a7cd
1 changed files with 5 additions and 6 deletions
|
@ -5865,15 +5865,14 @@ void Plater::force_print_bed_update()
|
||||||
|
|
||||||
void Plater::on_activate()
|
void Plater::on_activate()
|
||||||
{
|
{
|
||||||
#ifdef __linux__
|
#if defined(__linux__) || defined(_WIN32)
|
||||||
wxWindow *focus_window = wxWindow::FindFocus();
|
wxWindow *focus_window = wxWindow::FindFocus();
|
||||||
// Activating the main frame, and no window has keyboard focus.
|
// Activating the main frame, and no window has keyboard focus.
|
||||||
// Set the keyboard focus to the visible Canvas3D.
|
// Set the keyboard focus to the visible Canvas3D.
|
||||||
if (this->p->view3D->IsShown() && (!focus_window || focus_window == this->p->view3D->get_wxglcanvas()))
|
if (this->p->view3D->IsShown() && wxWindow::FindFocus() != this->p->view3D->get_wxglcanvas())
|
||||||
this->p->view3D->get_wxglcanvas()->SetFocus();
|
CallAfter([this]() { this->p->view3D->get_wxglcanvas()->SetFocus(); });
|
||||||
|
else if (this->p->preview->IsShown() && wxWindow::FindFocus() != this->p->view3D->get_wxglcanvas())
|
||||||
else if (this->p->preview->IsShown() && (!focus_window || focus_window == this->p->view3D->get_wxglcanvas()))
|
CallAfter([this]() { this->p->preview->get_wxglcanvas()->SetFocus(); });
|
||||||
this->p->preview->get_wxglcanvas()->SetFocus();
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
this->p->show_delayed_error_message();
|
this->p->show_delayed_error_message();
|
||||||
|
|
Loading…
Reference in a new issue