Redraw small change of the GUI on the wrong display when resize the left panel #2169

Open
opened 2026-04-06 00:58:53 +02:00 by MrUnknownDE · 0 comments
Owner

Originally created by @ceezblog on 9/16/2025

Is there an existing issue for this problem?

  • I have searched the existing issues

OrcaSlicer Version

2.3.0

Operating System (OS)

Windows

OS Version

Windows 11 x64

Additional system information

I have dual-monitor setup, left display is extended while right one is the main display. This bug is about the redraw region is at the wrong spot, in fact it is actually at the wrong monitor.

This bug is about GUI or how windows redraw the GUI.

My setup

Image

Printer

Bambu Lab P1S (doesn't matter)

How to reproduce

1- Set 2nd monitor as left side, main monitor on the right, like this

Image

2- Then open orca slicer and place it on the main monitor (on the right)

3- Drag the sizable bar to resize left panel

Image

4- 'Artifact' (the actual redraw update) will show up on the left monitor instead on the right monitor.

Image

Actual results

Watch this video
https://drive.google.com/file/d/1emuBe65roGi64LNNrAe0s9n5J3c4kWKB/view?usp=sharing

Expected results

When I resize the left panel

Image

I expect the redraw region is at the location of sizable bar between left panel and main 3D view, on the main monitor (which is on the right side).

When it is sizing, full redraw of the 3D view port is not issued. The 3D view port only updated when sizing is done. Only a small rect that is the same size of sizable bar getting drawn over, faking the resizing as we drag, but actually the resizing happens after we release the left mouse button.

If I am not wrong, it gets the coordinate using the current screen (main monitor). but when it redraws, or draws over, it uses the coordinate of the whole desktop (which contains both screens). For example, coordinate (from the top left) of redraw region is {X, Y, Width, Height} but this is for the main display, which translates to screen coordinate {X+1080, Y+ delta_Y, Width, Height)

As my setup: Desktop_coordinate = Display_2_coordinate + Display_1_coordinate_extension

I think people would have the main monitor on the left instead of on the right like me, just like you write from left to right, like Desktop_coordinate = Display_1_coordinate + Display_2_coordinate_extension

Project file & Debug log uploads

Thig bug is not related to any project.

Checklist of files to include

  • Log file
  • Project file

Anything else?

I have a tiny bit of experience programming win32 c++ using WINAPI, like all GUI task is using WINAPI or MFC instead of GDI. I know next to nothing about GDI or 3D graphic. Maybe, all the terms (or definition) I mentioned in the report could be all wrong, such as "screen = display1 + display2" or it should be "desktop = screen1 + screen2" or in reverse.

Sooooo, please tell me if you need more clarification

*Originally created by @ceezblog on 9/16/2025* ### Is there an existing issue for this problem? - [x] I have searched the existing issues ### OrcaSlicer Version 2.3.0 ### Operating System (OS) Windows ### OS Version Windows 11 x64 ### Additional system information I have dual-monitor setup, left display is extended while right one is the main display. This bug is about the redraw region is at the wrong spot, in fact it is actually at the wrong monitor. This bug is about GUI or how windows redraw the GUI. My setup <img width="654" height="402" alt="Image" src="https://github.com/user-attachments/assets/58327921-aa7f-4fe5-a382-c34dec7bc779" /> ### Printer Bambu Lab P1S (doesn't matter) ### How to reproduce 1- Set 2nd monitor as left side, main monitor on the right, like this <img width="721" height="532" alt="Image" src="https://github.com/user-attachments/assets/8fd39ffd-243b-4aee-98e6-8f1331b10df4" /> 2- Then open orca slicer and place it on the main monitor (on the right) 3- Drag the sizable bar to resize left panel <img width="1790" height="1113" alt="Image" src="https://github.com/user-attachments/assets/67cec7c9-544e-4e17-ab73-31d4a7b895a9" /> 4- 'Artifact' (the actual redraw update) will show up on the left monitor instead on the right monitor. <img width="1600" height="1200" alt="Image" src="https://github.com/user-attachments/assets/22353bdc-d77e-477d-947a-70f05d9ef474" /> ### Actual results Watch this video https://drive.google.com/file/d/1emuBe65roGi64LNNrAe0s9n5J3c4kWKB/view?usp=sharing ### Expected results When I resize the left panel <img width="1790" height="1113" alt="Image" src="https://github.com/user-attachments/assets/67cec7c9-544e-4e17-ab73-31d4a7b895a9" /> I expect the redraw region is at the location of sizable bar between left panel and main 3D view, on the main monitor (which is on the right side). When it is sizing, full redraw of the 3D view port is not issued. The 3D view port only updated when sizing is done. Only a small rect that is the same size of sizable bar getting drawn over, faking the resizing as we drag, but actually the resizing happens after we release the left mouse button. If I am not wrong, it gets the coordinate using the current screen (main monitor). but when it redraws, or draws over, it uses the coordinate of the whole desktop (which contains both screens). For example, coordinate (from the top left) of redraw region is {X, Y, Width, Height} but this is for the main display, which translates to screen coordinate {X+1080, Y+ delta_Y, Width, Height) As my setup: Desktop_coordinate = Display_2_coordinate + Display_1_coordinate_extension I think people would have the main monitor on the left instead of on the right like me, just like you write from left to right, like Desktop_coordinate = Display_1_coordinate + Display_2_coordinate_extension ### Project file & Debug log uploads Thig bug is not related to any project. ### Checklist of files to include - [ ] Log file - [ ] Project file ### Anything else? I have a tiny bit of experience programming win32 c++ using WINAPI, like all GUI task is using WINAPI or MFC instead of GDI. I know next to nothing about GDI or 3D graphic. Maybe, all the terms (or definition) I mentioned in the report could be all wrong, such as "screen = display1 + display2" or it should be "desktop = screen1 + screen2" or in reverse. Sooooo, please tell me if you need more clarification
MrUnknownDE added the bugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbugbug labels 2026-04-06 01:00:50 +02:00
Sign in to join this conversation.
No Label bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug bug
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: github/OrcaSlicer#2169