Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PrusaSlicer gets stuck in an endless "Warning" loop if you set the "Avoid crossing perimeters - Max detour length" value to be significant (e.g. 10) without using a "%" sign #6992

Closed
cloud30000 opened this issue Sep 22, 2021 · 13 comments

Comments

@cloud30000
Copy link

Version

Version 2.4.0-alpha1+win64

Operating system type + version

Windows 64 bit

3D printer brand / version + firmware version (if known)

Prusa MK3S+

Behavior

PrusaSlicer gets stuck in a "Warning" loop if you set the "Avoid crossing perimeters - Max detour length" value to be significant (e.g. 10) without using a "%" sign.
Selecting the "Yes", "No", or "x" buttons all just cause the Warning dialog to instantly regenerate.

There does not seem to be a workaround to exit the loop, as even positioning the buttons directly over the length text entry field does not return to the field for editing, just regenerating the Warning dialog again instead. PrusaSlicer must be closed from Task Manager to get rid of Warning dialog.

It appears as though the loop is detecting if the entry field is not currently the focus, which it cannot be anymore once the warning occurs, instead of detecting if exiting the field for the first time.

@dartrax
Copy link

dartrax commented Oct 31, 2021

Could not reproduce in 2.4.0 beta 1. Fixed?

@cloud30000
Copy link
Author

I figured out what caused it; after entering a significant value in the field (such as 10), switch to a different window/application in Windows. The warning dialog pops up in the PrusaSlicer app while it is in the background, at which point refocusing on the PrusaSlicer application leaves it in the undismissable Warning loop.

@dartrax
Copy link

dartrax commented Nov 1, 2021

Ah ok. And it does not happen if the settings are in a modal window.
So I confirm it is an issue with 2.4.0 beta 1, to reproduce:

  1. Be sure settings are not in a non-modal window (Use GUI Setting "Old regular layout" or "New layout")
  2. Change the Value in the "Avoid crossing perimeters - Max detour length" box to 10 or 100 (without %)
  3. Open the Windows Start Menu or switch to another application

Result:

  • When GUI setting is "New layout", the Warning dialog pops up a second time before it goes away
  • When GUI setting is "Old regular layout", the Warning dialog won't go away until the app gets killed

@FidelCapo
Copy link
Collaborator

This issue should be fixed.
Closing.

@cloud30000
Copy link
Author

Please add the commit that addresses this issue, or else state that it could not be reproduced and what version you attempted to reproduce it.

@cloud30000
Copy link
Author

Reproduced in Beta 2; opening a new issue since I cannot reopen this one.

@lukasmatena
Copy link
Collaborator

Thanks, reproduced. Reopening.

@lukasmatena lukasmatena reopened this Dec 3, 2021
bubnikv added a commit that referenced this issue Dec 3, 2021
window without having to resort to CallAfter(), which breaks
on Linux with some window managers that follow mouser cursor.
May fix #5620 #6870 #6992
@bubnikv
Copy link
Collaborator

bubnikv commented Dec 4, 2021

@cloud30000
3622f06 seems to fix this issue. Would you please confirm?

@cloud30000
Copy link
Author

Downloading and installing Visual Studio now

@cloud30000
Copy link
Author

@bubnikv
Can't compile; Microsoft updated the VS Community edition they are providing to 2022, but the PrusaSlicer GIT Repository CMake files keep giving me an error saying they are incompatible with this version of "MSVC", even after I deleted the CMAKE cache and tried using "cmake .. -G "Visual Studio 17 2022" -DDESTDIR="C:\local\destdir-custom"" from the VS "x64 Native Tools Command Prompt for VS 2022".

Is there a compiled Windows 64-bit version of this commit available to test with?

@bubnikv
Copy link
Collaborator

bubnikv commented Dec 4, 2021

https://prusaslicer:slicer@slicerbuilds.prusa3d.com/files/PrusaSlicer-2.4.0-beta2+96-win64-g303de63a9-202112040813.zip
You may want to enter user name "prusaslicer" password "slicer" if a login window pops up.

@dartrax
Copy link

dartrax commented Dec 4, 2021

Could not reproduce any more with 2.4.0 beta 3.

@bubnikv
Copy link
Collaborator

bubnikv commented Dec 4, 2021

Cool, thanks.
Closing

@bubnikv bubnikv closed this as completed Dec 4, 2021
bubnikv added a commit that referenced this issue Dec 5, 2021
Work around 3D scene focus after de-activation of the main
window without having to resort to CallAfter(), which breaks
on Linux with some window managers that follow mouser cursor.
Fixes #5620 #6870 #6992

3622f06 was not a correct solution,
it broke focus for non-modal windows.
Fixes #7419

The actual issue seems to be caused by wxProgressDialog not playing
well with modal dialogs closed just before wxProgressDialog opens.
If wxProgressDialog parent was not a main frame, keyboard focus
was not restored correctly after the wxProgressDialog closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants