mirror of
https://git.mirrors.martin98.com/https://github.com/slic3r/Slic3r.git
synced 2025-09-17 00:33:15 +08:00
Fix for supermerill/SuperSlicer#888
The CallAfter() on Linux causes weird window focus issues. For me, using ALT-Tab to switch away from PrusaSlicer/SuperSlicer would cause PrusaSlicer/SuperSlicer to take back focus after about one second. Stranger things reportedly occur with focus-follows-mouse. The #ifdef is there because it is assumed the CallAfter() was added in 20f5b7a for a good reason.
This commit is contained in:
parent
6741b9ba25
commit
aab506b36c
@ -6152,9 +6152,14 @@ void Plater::force_print_bed_update()
|
|||||||
|
|
||||||
void Plater::on_activate()
|
void Plater::on_activate()
|
||||||
{
|
{
|
||||||
#if defined(__linux__) || defined(_WIN32)
|
|
||||||
// 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 defined(__linux__)
|
||||||
|
if (this->p->view3D->IsShown() && wxWindow::FindFocus() != this->p->view3D->get_wxglcanvas())
|
||||||
|
this->p->view3D->get_wxglcanvas()->SetFocus();
|
||||||
|
else if (this->p->preview->IsShown() && wxWindow::FindFocus() != this->p->view3D->get_wxglcanvas())
|
||||||
|
this->p->preview->get_wxglcanvas()->SetFocus();
|
||||||
|
#elif defined(_WIN32)
|
||||||
if (this->p->view3D->IsShown() && wxWindow::FindFocus() != this->p->view3D->get_wxglcanvas())
|
if (this->p->view3D->IsShown() && wxWindow::FindFocus() != this->p->view3D->get_wxglcanvas())
|
||||||
CallAfter([this]() { 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() && wxWindow::FindFocus() != this->p->view3D->get_wxglcanvas())
|
||||||
|
Loading…
x
Reference in New Issue
Block a user